@medusajs/ui 1.0.0 → 2.0.0

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 (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -2
  3. package/dist/cjs/components/badge/badge.d.ts +16 -5
  4. package/dist/cjs/components/badge/badge.js +20 -31
  5. package/dist/cjs/components/badge/badge.js.map +1 -1
  6. package/dist/cjs/components/button/button.d.ts +1 -2
  7. package/dist/cjs/components/button/button.js +9 -37
  8. package/dist/cjs/components/button/button.js.map +1 -1
  9. package/dist/cjs/components/calendar/calendar.js +4 -4
  10. package/dist/cjs/components/calendar/calendar.js.map +1 -1
  11. package/dist/cjs/components/code-block/code-block.d.ts +3 -5
  12. package/dist/cjs/components/code-block/code-block.js +19 -19
  13. package/dist/cjs/components/code-block/code-block.js.map +1 -1
  14. package/dist/cjs/components/command-bar/command-bar.d.ts +22 -0
  15. package/dist/cjs/components/command-bar/command-bar.js +63 -0
  16. package/dist/cjs/components/command-bar/command-bar.js.map +1 -0
  17. package/dist/cjs/components/command-bar/index.d.ts +1 -0
  18. package/dist/cjs/components/command-bar/index.js +5 -0
  19. package/dist/cjs/components/command-bar/index.js.map +1 -0
  20. package/dist/cjs/components/container/container.d.ts +1 -1
  21. package/dist/cjs/components/container/container.js.map +1 -1
  22. package/dist/cjs/components/currency-input/currency-input.d.ts +21 -0
  23. package/dist/cjs/components/currency-input/currency-input.js +54 -0
  24. package/dist/cjs/components/currency-input/currency-input.js.map +1 -0
  25. package/dist/cjs/components/currency-input/index.d.ts +1 -0
  26. package/dist/cjs/components/currency-input/index.js +5 -0
  27. package/dist/cjs/components/currency-input/index.js.map +1 -0
  28. package/dist/cjs/components/date-picker/date-picker.d.ts +1 -1
  29. package/dist/cjs/components/date-picker/date-picker.js +42 -28
  30. package/dist/cjs/components/date-picker/date-picker.js.map +1 -1
  31. package/dist/cjs/components/drawer/drawer.d.ts +13 -15
  32. package/dist/cjs/components/drawer/drawer.js +53 -44
  33. package/dist/cjs/components/drawer/drawer.js.map +1 -1
  34. package/dist/cjs/components/dropdown-menu/dropdown-menu.js +2 -2
  35. package/dist/cjs/components/dropdown-menu/dropdown-menu.js.map +1 -1
  36. package/dist/cjs/components/focus-modal/focus-modal.d.ts +9 -12
  37. package/dist/cjs/components/focus-modal/focus-modal.js +39 -35
  38. package/dist/cjs/components/focus-modal/focus-modal.js.map +1 -1
  39. package/dist/cjs/components/heading/heading.js +3 -3
  40. package/dist/cjs/components/heading/heading.js.map +1 -1
  41. package/dist/cjs/components/hint/hint.d.ts +1 -1
  42. package/dist/cjs/components/icon-badge/icon-badge.d.ts +20 -0
  43. package/dist/cjs/components/icon-badge/icon-badge.js +24 -0
  44. package/dist/cjs/components/icon-badge/icon-badge.js.map +1 -0
  45. package/dist/cjs/components/icon-badge/index.d.ts +1 -0
  46. package/dist/cjs/components/icon-badge/index.js +5 -0
  47. package/dist/cjs/components/icon-badge/index.js.map +1 -0
  48. package/dist/cjs/components/icon-button/icon-button.d.ts +21 -0
  49. package/dist/cjs/components/icon-button/icon-button.js +48 -0
  50. package/dist/cjs/components/icon-button/icon-button.js.map +1 -0
  51. package/dist/cjs/components/icon-button/index.d.ts +1 -0
  52. package/dist/cjs/components/icon-button/index.js +5 -0
  53. package/dist/cjs/components/icon-button/index.js.map +1 -0
  54. package/dist/cjs/components/input/input.js +5 -5
  55. package/dist/cjs/components/input/input.js.map +1 -1
  56. package/dist/cjs/components/kbd/kbd.d.ts +1 -1
  57. package/dist/cjs/components/kbd/kbd.js +4 -3
  58. package/dist/cjs/components/kbd/kbd.js.map +1 -1
  59. package/dist/cjs/components/progress-accordion/index.d.ts +1 -0
  60. package/dist/cjs/components/progress-accordion/index.js +5 -0
  61. package/dist/cjs/components/progress-accordion/index.js.map +1 -0
  62. package/dist/cjs/components/progress-accordion/progress-accordion.d.ts +19 -0
  63. package/dist/cjs/components/progress-accordion/progress-accordion.js +54 -0
  64. package/dist/cjs/components/progress-accordion/progress-accordion.js.map +1 -0
  65. package/dist/cjs/components/progress-tabs/index.d.ts +1 -0
  66. package/dist/cjs/components/progress-tabs/index.js +5 -0
  67. package/dist/cjs/components/progress-tabs/index.js.map +1 -0
  68. package/dist/cjs/components/progress-tabs/progress-tabs.d.ts +15 -0
  69. package/dist/cjs/components/progress-tabs/progress-tabs.js +46 -0
  70. package/dist/cjs/components/progress-tabs/progress-tabs.js.map +1 -0
  71. package/dist/cjs/components/prompt/prompt.js +3 -3
  72. package/dist/cjs/components/prompt/prompt.js.map +1 -1
  73. package/dist/cjs/components/select/select.js +1 -1
  74. package/dist/cjs/components/select/select.js.map +1 -1
  75. package/dist/cjs/components/status-badge/index.d.ts +1 -0
  76. package/dist/cjs/components/status-badge/index.js +5 -0
  77. package/dist/cjs/components/status-badge/index.js.map +1 -0
  78. package/dist/cjs/components/status-badge/status-badge.d.ts +6 -0
  79. package/dist/cjs/components/status-badge/status-badge.js +23 -0
  80. package/dist/cjs/components/status-badge/status-badge.js.map +1 -0
  81. package/dist/cjs/components/switch/switch.js +1 -1
  82. package/dist/cjs/components/switch/switch.js.map +1 -1
  83. package/dist/cjs/components/table/table.js +3 -3
  84. package/dist/cjs/components/table/table.js.map +1 -1
  85. package/dist/cjs/components/tabs/index.d.ts +1 -0
  86. package/dist/cjs/components/tabs/index.js +5 -0
  87. package/dist/cjs/components/tabs/index.js.map +1 -0
  88. package/dist/cjs/components/tabs/tabs.d.ts +11 -0
  89. package/dist/cjs/components/tabs/tabs.js +25 -0
  90. package/dist/cjs/components/tabs/tabs.js.map +1 -0
  91. package/dist/cjs/components/toast/toast.js +1 -1
  92. package/dist/cjs/components/toast/toast.js.map +1 -1
  93. package/dist/cjs/components/tooltip/tooltip.js +1 -1
  94. package/dist/cjs/components/tooltip/tooltip.js.map +1 -1
  95. package/dist/cjs/index.d.ts +9 -0
  96. package/dist/cjs/index.js +20 -1
  97. package/dist/cjs/index.js.map +1 -1
  98. package/dist/cjs/types.d.ts +5 -0
  99. package/dist/cjs/types.js +3 -0
  100. package/dist/cjs/types.js.map +1 -0
  101. package/dist/esm/components/badge/badge.d.ts +16 -5
  102. package/dist/esm/components/badge/badge.js +19 -31
  103. package/dist/esm/components/badge/badge.js.map +1 -1
  104. package/dist/esm/components/button/button.d.ts +1 -2
  105. package/dist/esm/components/button/button.js +9 -37
  106. package/dist/esm/components/button/button.js.map +1 -1
  107. package/dist/esm/components/calendar/calendar.js +4 -4
  108. package/dist/esm/components/calendar/calendar.js.map +1 -1
  109. package/dist/esm/components/code-block/code-block.d.ts +3 -5
  110. package/dist/esm/components/code-block/code-block.js +7 -7
  111. package/dist/esm/components/code-block/code-block.js.map +1 -1
  112. package/dist/esm/components/command-bar/command-bar.d.ts +22 -0
  113. package/dist/esm/components/command-bar/command-bar.js +59 -0
  114. package/dist/esm/components/command-bar/command-bar.js.map +1 -0
  115. package/dist/esm/components/command-bar/index.d.ts +1 -0
  116. package/dist/esm/components/command-bar/index.js +2 -0
  117. package/dist/esm/components/command-bar/index.js.map +1 -0
  118. package/dist/esm/components/container/container.d.ts +1 -1
  119. package/dist/esm/components/container/container.js.map +1 -1
  120. package/dist/esm/components/currency-input/currency-input.d.ts +21 -0
  121. package/dist/esm/components/currency-input/currency-input.js +50 -0
  122. package/dist/esm/components/currency-input/currency-input.js.map +1 -0
  123. package/dist/esm/components/currency-input/index.d.ts +1 -0
  124. package/dist/esm/components/currency-input/index.js +2 -0
  125. package/dist/esm/components/currency-input/index.js.map +1 -0
  126. package/dist/esm/components/date-picker/date-picker.d.ts +1 -1
  127. package/dist/esm/components/date-picker/date-picker.js +44 -30
  128. package/dist/esm/components/date-picker/date-picker.js.map +1 -1
  129. package/dist/esm/components/drawer/drawer.d.ts +13 -15
  130. package/dist/esm/components/drawer/drawer.js +53 -44
  131. package/dist/esm/components/drawer/drawer.js.map +1 -1
  132. package/dist/esm/components/dropdown-menu/dropdown-menu.js +2 -2
  133. package/dist/esm/components/dropdown-menu/dropdown-menu.js.map +1 -1
  134. package/dist/esm/components/focus-modal/focus-modal.d.ts +9 -12
  135. package/dist/esm/components/focus-modal/focus-modal.js +39 -35
  136. package/dist/esm/components/focus-modal/focus-modal.js.map +1 -1
  137. package/dist/esm/components/heading/heading.js +3 -3
  138. package/dist/esm/components/heading/heading.js.map +1 -1
  139. package/dist/esm/components/hint/hint.d.ts +1 -1
  140. package/dist/esm/components/icon-badge/icon-badge.d.ts +20 -0
  141. package/dist/esm/components/icon-badge/icon-badge.js +20 -0
  142. package/dist/esm/components/icon-badge/icon-badge.js.map +1 -0
  143. package/dist/esm/components/icon-badge/index.d.ts +1 -0
  144. package/dist/esm/components/icon-badge/index.js +2 -0
  145. package/dist/esm/components/icon-badge/index.js.map +1 -0
  146. package/dist/esm/components/icon-button/icon-button.d.ts +21 -0
  147. package/dist/esm/components/icon-button/icon-button.js +43 -0
  148. package/dist/esm/components/icon-button/icon-button.js.map +1 -0
  149. package/dist/esm/components/icon-button/index.d.ts +1 -0
  150. package/dist/esm/components/icon-button/index.js +2 -0
  151. package/dist/esm/components/icon-button/index.js.map +1 -0
  152. package/dist/esm/components/input/input.js +5 -5
  153. package/dist/esm/components/input/input.js.map +1 -1
  154. package/dist/esm/components/kbd/kbd.d.ts +1 -1
  155. package/dist/esm/components/kbd/kbd.js +4 -3
  156. package/dist/esm/components/kbd/kbd.js.map +1 -1
  157. package/dist/esm/components/progress-accordion/index.d.ts +1 -0
  158. package/dist/esm/components/progress-accordion/index.js +2 -0
  159. package/dist/esm/components/progress-accordion/index.js.map +1 -0
  160. package/dist/esm/components/progress-accordion/progress-accordion.d.ts +19 -0
  161. package/dist/esm/components/progress-accordion/progress-accordion.js +50 -0
  162. package/dist/esm/components/progress-accordion/progress-accordion.js.map +1 -0
  163. package/dist/esm/components/progress-tabs/index.d.ts +1 -0
  164. package/dist/esm/components/progress-tabs/index.js +2 -0
  165. package/dist/esm/components/progress-tabs/index.js.map +1 -0
  166. package/dist/esm/components/progress-tabs/progress-tabs.d.ts +15 -0
  167. package/dist/esm/components/progress-tabs/progress-tabs.js +42 -0
  168. package/dist/esm/components/progress-tabs/progress-tabs.js.map +1 -0
  169. package/dist/esm/components/prompt/prompt.js +3 -3
  170. package/dist/esm/components/prompt/prompt.js.map +1 -1
  171. package/dist/esm/components/select/select.js +1 -1
  172. package/dist/esm/components/select/select.js.map +1 -1
  173. package/dist/esm/components/status-badge/index.d.ts +1 -0
  174. package/dist/esm/components/status-badge/index.js +2 -0
  175. package/dist/esm/components/status-badge/index.js.map +1 -0
  176. package/dist/esm/components/status-badge/status-badge.d.ts +6 -0
  177. package/dist/esm/components/status-badge/status-badge.js +19 -0
  178. package/dist/esm/components/status-badge/status-badge.js.map +1 -0
  179. package/dist/esm/components/switch/switch.js +1 -1
  180. package/dist/esm/components/switch/switch.js.map +1 -1
  181. package/dist/esm/components/table/table.js +3 -3
  182. package/dist/esm/components/table/table.js.map +1 -1
  183. package/dist/esm/components/tabs/index.d.ts +1 -0
  184. package/dist/esm/components/tabs/index.js +2 -0
  185. package/dist/esm/components/tabs/index.js.map +1 -0
  186. package/dist/esm/components/tabs/tabs.d.ts +11 -0
  187. package/dist/esm/components/tabs/tabs.js +21 -0
  188. package/dist/esm/components/tabs/tabs.js.map +1 -0
  189. package/dist/esm/components/toast/toast.js +1 -1
  190. package/dist/esm/components/toast/toast.js.map +1 -1
  191. package/dist/esm/components/tooltip/tooltip.js +1 -1
  192. package/dist/esm/components/tooltip/tooltip.js.map +1 -1
  193. package/dist/esm/index.d.ts +9 -0
  194. package/dist/esm/index.js +10 -0
  195. package/dist/esm/index.js.map +1 -1
  196. package/dist/esm/types.d.ts +5 -0
  197. package/dist/esm/types.js +2 -0
  198. package/dist/esm/types.js.map +1 -0
  199. package/package.json +12 -5
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2023 Medusajs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,52 @@
1
- # @medusajs/ui
1
+ <p align="center">
2
+ <a href="https://www.medusajs.com">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
6
+ <img alt="Medusa logo" src="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
7
+ </picture>
8
+ </a>
9
+ </p>
10
+ <h1 align="center">
11
+ Medusa UI
12
+ </h1>
2
13
 
3
- [Storybook](https://64ac29b6b978c0bf353e1ef8-wdedgwwcko.chromatic.com/)
14
+ <h4 align="center">
15
+ <a href="https://docs.medusajs.com/ui">Documentation</a> |
16
+ <a href="https://www.medusajs.com">Website</a>
17
+ </h4>
18
+
19
+ <p align="center">
20
+ Medusa's admin component library.
21
+ </p>
22
+ <p align="center">
23
+ <a href="https://github.com/medusajs/medusa/blob/develop/LICENSE">
24
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="Medusa is released under the MIT license." />
25
+ </a>
26
+ <a href="https://discord.gg/xpCwq3Kfn8">
27
+ <img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Discord Chat" />
28
+ </a>
29
+ <a href="https://twitter.com/intent/follow?screen_name=medusajs">
30
+ <img src="https://img.shields.io/twitter/follow/medusajs.svg?label=Follow%20@medusajs" alt="Follow @medusajs" />
31
+ </a>
32
+ </p>
33
+
34
+ ## Getting Started
35
+
36
+ ### Installation
37
+
38
+ ```sh
39
+ yarn add @medusajs/medusa-ui
40
+ ```
41
+
42
+ ### Usage
43
+
44
+ ```jsx
45
+ import { Button } from "@medusajs/ui"
46
+
47
+ const App = () => <Button variant="primary">Hello World</Button>
48
+ ```
49
+
50
+ ## Documentation
51
+
52
+ You can find the documentation for Medusa UI [on the documentation site](https://docs.medusajs.com/ui).
@@ -1,8 +1,6 @@
1
1
  import { VariantProps } from "class-variance-authority";
2
2
  import * as React from "react";
3
- declare const badgeVariants: (props?: ({
4
- type?: "rounded" | "default" | "icon" | null | undefined;
5
- size?: "base" | "large" | "small" | null | undefined;
3
+ declare const badgeColorVariants: (props?: ({
6
4
  color?: "green" | "red" | "blue" | "orange" | "grey" | "purple" | null | undefined;
7
5
  } & ({
8
6
  class: import("clsx").ClassValue;
@@ -14,8 +12,21 @@ declare const badgeVariants: (props?: ({
14
12
  class?: undefined;
15
13
  className?: undefined;
16
14
  })) | undefined) => string;
17
- interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color">, VariantProps<typeof badgeVariants> {
15
+ declare const badgeSizeVariants: (props?: ({
16
+ size?: "base" | "large" | "small" | null | undefined;
17
+ rounded?: "base" | "full" | null | undefined;
18
+ } & ({
19
+ class: import("clsx").ClassValue;
20
+ className?: undefined;
21
+ } | {
22
+ class?: undefined;
23
+ className: import("clsx").ClassValue;
24
+ } | {
25
+ class?: undefined;
26
+ className?: undefined;
27
+ })) | undefined) => string;
28
+ interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color">, VariantProps<typeof badgeSizeVariants>, VariantProps<typeof badgeColorVariants> {
18
29
  asChild?: boolean;
19
30
  }
20
31
  declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
21
- export { Badge };
32
+ export { Badge, badgeColorVariants };
@@ -1,23 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Badge = void 0;
3
+ exports.badgeColorVariants = exports.Badge = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_slot_1 = require("@radix-ui/react-slot");
6
6
  const class_variance_authority_1 = require("class-variance-authority");
7
7
  const React = tslib_1.__importStar(require("react"));
8
8
  const clx_1 = require("../../utils/clx");
9
- const badgeVariants = (0, class_variance_authority_1.cva)("inline-flex items-center gap-x-0.5 border", {
9
+ const badgeColorVariants = (0, class_variance_authority_1.cva)("", {
10
10
  variants: {
11
- type: {
12
- default: "rounded-md",
13
- rounded: "rounded-full",
14
- icon: "rounded-md",
15
- },
16
- size: {
17
- small: "txt-compact-xsmall-plus px-1.5",
18
- base: "txt-compact-small-plus px-2 py-0.5",
19
- large: "txt-compact-medium-plus px-2.5 py-1",
20
- },
21
11
  color: {
22
12
  green: "bg-ui-tag-green-bg text-ui-tag-green-text [&_svg]:text-ui-tag-green-icon border-ui-tag-green-border",
23
13
  red: "bg-ui-tag-red-bg text-ui-tag-red-text [&_svg]:text-ui-tag-red-icon border-ui-tag-red-border",
@@ -27,32 +17,31 @@ const badgeVariants = (0, class_variance_authority_1.cva)("inline-flex items-cen
27
17
  purple: "bg-ui-tag-purple-bg text-ui-tag-purple-text [&_svg]:text-ui-tag-purple-icon border-ui-tag-purple-border",
28
18
  },
29
19
  },
30
- compoundVariants: [
31
- {
32
- type: "icon",
33
- size: "large",
34
- className: "p-1",
35
- },
36
- {
37
- type: "icon",
38
- size: "base",
39
- className: "p-0.5",
20
+ defaultVariants: {
21
+ color: "grey",
22
+ },
23
+ });
24
+ exports.badgeColorVariants = badgeColorVariants;
25
+ const badgeSizeVariants = (0, class_variance_authority_1.cva)("inline-flex items-center gap-x-0.5 border", {
26
+ variants: {
27
+ size: {
28
+ small: "txt-compact-xsmall-plus px-1.5",
29
+ base: "txt-compact-small-plus px-2 py-0.5",
30
+ large: "txt-compact-medium-plus px-2.5 py-1",
40
31
  },
41
- {
42
- type: "icon",
43
- size: "small",
44
- className: "p-0.5", // Icon does not get any smaller than `md`
32
+ rounded: {
33
+ base: "rounded-md",
34
+ full: "rounded-full",
45
35
  },
46
- ],
36
+ },
47
37
  defaultVariants: {
48
38
  size: "base",
49
- type: "default",
50
- color: "grey",
39
+ rounded: "base",
51
40
  },
52
41
  });
53
- const Badge = React.forwardRef(({ className, size, type, color, asChild = false, ...props }, ref) => {
42
+ const Badge = React.forwardRef(({ className, size = "base", rounded = "base", color = "grey", asChild = false, ...props }, ref) => {
54
43
  const Component = asChild ? react_slot_1.Slot : "span";
55
- return (React.createElement(Component, { ref: ref, className: (0, clx_1.clx)(badgeVariants({ size, type, color }), className), ...props }));
44
+ return (React.createElement(Component, { ref: ref, className: (0, clx_1.clx)(badgeColorVariants({ color }), badgeSizeVariants({ size, rounded }), className), ...props }));
56
45
  });
57
46
  exports.Badge = Badge;
58
47
  Badge.displayName = "Badge";
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../../src/components/badge/badge.tsx"],"names":[],"mappings":";;;;AAAA,qDAA2C;AAC3C,uEAA4D;AAC5D,qDAA8B;AAE9B,qCAAiC;AAEjC,MAAM,aAAa,GAAG,IAAA,8BAAG,EAAC,2CAA2C,EAAE;IACrE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,YAAY;SACnB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,gCAAgC;YACvC,IAAI,EAAE,oCAAoC;YAC1C,KAAK,EAAE,qCAAqC;SAC7C;QACD,KAAK,EAAE;YACL,KAAK,EACH,qGAAqG;YACvG,GAAG,EAAE,6FAA6F;YAClG,IAAI,EAAE,iGAAiG;YACvG,MAAM,EACJ,yGAAyG;YAC3G,IAAI,EAAE,6GAA6G;YACnH,MAAM,EACJ,yGAAyG;SAC5G;KACF;IACD,gBAAgB,EAAE;QAChB;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,OAAO;SACnB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,OAAO,EAAE,0CAA0C;SAC/D;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAA;AAQF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAEzC,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,SAAG,EAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,KAC3D,KAAK,GACT,CACH,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,sBAAK;AAFd,KAAK,CAAC,WAAW,GAAG,OAAO,CAAA","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { VariantProps, cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst badgeVariants = cva(\"inline-flex items-center gap-x-0.5 border\", {\n variants: {\n type: {\n default: \"rounded-md\",\n rounded: \"rounded-full\",\n icon: \"rounded-md\",\n },\n size: {\n small: \"txt-compact-xsmall-plus px-1.5\",\n base: \"txt-compact-small-plus px-2 py-0.5\",\n large: \"txt-compact-medium-plus px-2.5 py-1\",\n },\n color: {\n green:\n \"bg-ui-tag-green-bg text-ui-tag-green-text [&_svg]:text-ui-tag-green-icon border-ui-tag-green-border\",\n red: \"bg-ui-tag-red-bg text-ui-tag-red-text [&_svg]:text-ui-tag-red-icon border-ui-tag-red-border\",\n blue: \"bg-ui-tag-blue-bg text-ui-tag-blue-text [&_svg]:text-ui-tag-blue-icon border-ui-tag-blue-border\",\n orange:\n \"bg-ui-tag-orange-bg text-ui-tag-orange-text [&_svg]:text-ui-tag-orange-icon border-ui-tag-orange-border\",\n grey: \"bg-ui-tag-neutral-bg text-ui-tag-neutral-text [&_svg]:text-ui-tag-neutral-icon border-ui-tag-neutral-border\",\n purple:\n \"bg-ui-tag-purple-bg text-ui-tag-purple-text [&_svg]:text-ui-tag-purple-icon border-ui-tag-purple-border\",\n },\n },\n compoundVariants: [\n {\n type: \"icon\",\n size: \"large\",\n className: \"p-1\",\n },\n {\n type: \"icon\",\n size: \"base\",\n className: \"p-0.5\",\n },\n {\n type: \"icon\",\n size: \"small\",\n className: \"p-0.5\", // Icon does not get any smaller than `md`\n },\n ],\n defaultVariants: {\n size: \"base\",\n type: \"default\",\n color: \"grey\",\n },\n})\n\ninterface BadgeProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"color\">,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, size, type, color, asChild = false, ...props }, ref) => {\n const Component = asChild ? Slot : \"span\"\n\n return (\n <Component\n ref={ref}\n className={clx(badgeVariants({ size, type, color }), className)}\n {...props}\n />\n )\n }\n)\nBadge.displayName = \"Badge\"\n\nexport { Badge }\n"]}
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../../src/components/badge/badge.tsx"],"names":[],"mappings":";;;;AAAA,qDAA2C;AAC3C,uEAA4D;AAC5D,qDAA8B;AAE9B,qCAAiC;AAEjC,MAAM,kBAAkB,GAAG,IAAA,8BAAG,EAAC,EAAE,EAAE;IACjC,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,KAAK,EACH,qGAAqG;YACvG,GAAG,EAAE,6FAA6F;YAClG,IAAI,EAAE,iGAAiG;YACvG,MAAM,EACJ,yGAAyG;YAC3G,IAAI,EAAE,6GAA6G;YACnH,MAAM,EACJ,yGAAyG;SAC5G;KACF;IACD,eAAe,EAAE;QACf,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAA;AAwDc,gDAAkB;AAtDlC,MAAM,iBAAiB,GAAG,IAAA,8BAAG,EAAC,2CAA2C,EAAE;IACzE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,KAAK,EAAE,gCAAgC;YACvC,IAAI,EAAE,oCAAoC;YAC1C,KAAK,EAAE,qCAAqC;SAC7C;QACD,OAAO,EAAE;YACP,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,cAAc;SACrB;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;KAChB;CACF,CAAC,CAAA;AASF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CACE,EACE,SAAS,EACT,IAAI,GAAG,MAAM,EACb,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,MAAM,EACd,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAEzC,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,SAAG,EACZ,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,EAC7B,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACpC,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,sBAAK;AAFd,KAAK,CAAC,WAAW,GAAG,OAAO,CAAA","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { VariantProps, cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst badgeColorVariants = cva(\"\", {\n variants: {\n color: {\n green:\n \"bg-ui-tag-green-bg text-ui-tag-green-text [&_svg]:text-ui-tag-green-icon border-ui-tag-green-border\",\n red: \"bg-ui-tag-red-bg text-ui-tag-red-text [&_svg]:text-ui-tag-red-icon border-ui-tag-red-border\",\n blue: \"bg-ui-tag-blue-bg text-ui-tag-blue-text [&_svg]:text-ui-tag-blue-icon border-ui-tag-blue-border\",\n orange:\n \"bg-ui-tag-orange-bg text-ui-tag-orange-text [&_svg]:text-ui-tag-orange-icon border-ui-tag-orange-border\",\n grey: \"bg-ui-tag-neutral-bg text-ui-tag-neutral-text [&_svg]:text-ui-tag-neutral-icon border-ui-tag-neutral-border\",\n purple:\n \"bg-ui-tag-purple-bg text-ui-tag-purple-text [&_svg]:text-ui-tag-purple-icon border-ui-tag-purple-border\",\n },\n },\n defaultVariants: {\n color: \"grey\",\n },\n})\n\nconst badgeSizeVariants = cva(\"inline-flex items-center gap-x-0.5 border\", {\n variants: {\n size: {\n small: \"txt-compact-xsmall-plus px-1.5\",\n base: \"txt-compact-small-plus px-2 py-0.5\",\n large: \"txt-compact-medium-plus px-2.5 py-1\",\n },\n rounded: {\n base: \"rounded-md\",\n full: \"rounded-full\",\n },\n },\n defaultVariants: {\n size: \"base\",\n rounded: \"base\",\n },\n})\n\ninterface BadgeProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"color\">,\n VariantProps<typeof badgeSizeVariants>,\n VariantProps<typeof badgeColorVariants> {\n asChild?: boolean\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n (\n {\n className,\n size = \"base\",\n rounded = \"base\",\n color = \"grey\",\n asChild = false,\n ...props\n },\n ref\n ) => {\n const Component = asChild ? Slot : \"span\"\n\n return (\n <Component\n ref={ref}\n className={clx(\n badgeColorVariants({ color }),\n badgeSizeVariants({ size, rounded }),\n className\n )}\n {...props}\n />\n )\n }\n)\nBadge.displayName = \"Badge\"\n\nexport { Badge, badgeColorVariants }\n"]}
@@ -2,8 +2,7 @@ import { type VariantProps } from "class-variance-authority";
2
2
  import * as React from "react";
3
3
  declare const buttonVariants: (props?: ({
4
4
  variant?: "primary" | "secondary" | "transparent" | "danger" | null | undefined;
5
- size?: "base" | "large" | "small" | "xlarge" | null | undefined;
6
- format?: "default" | "icon" | null | undefined;
5
+ size?: "base" | "large" | "xlarge" | null | undefined;
7
6
  } & ({
8
7
  class: import("clsx").ClassValue;
9
8
  className?: undefined;
@@ -7,55 +7,27 @@ const class_variance_authority_1 = require("class-variance-authority");
7
7
  const React = tslib_1.__importStar(require("react"));
8
8
  const clx_1 = require("../../utils/clx");
9
9
  const icons_1 = require("@medusajs/icons");
10
- const buttonVariants = (0, class_variance_authority_1.cva)("disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-lg border outline-none after:absolute after:inset-0 after:content-[''] disabled:!shadow-none disabled:after:hidden", {
10
+ const buttonVariants = (0, class_variance_authority_1.cva)((0, clx_1.clx)("transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md border outline-none", "disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:!shadow-none disabled:after:hidden", "after:absolute after:inset-0 after:content-['']"), {
11
11
  variants: {
12
12
  variant: {
13
13
  primary: (0, clx_1.clx)("shadow-buttons-colored text-ui-fg-on-inverted border-ui-border-loud bg-ui-button-inverted after:button-inverted-gradient", "hover:bg-ui-button-inverted-hover hover:after:button-inverted-hover-gradient", "active:bg-ui-button-inverted-pressed active:after:button-inverted-pressed-gradient", "focus:!shadow-buttons-colored-focus"),
14
14
  secondary: (0, clx_1.clx)("shadow-buttons-neutral text-ui-fg-base border-ui-border-base bg-ui-button-neutral after:button-neutral-gradient", "hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient", "active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient", "focus:shadow-buttons-neutral-focus"),
15
- transparent: (0, clx_1.clx)("text-ui-fg-base border-ui-border-transparent bg-ui-button-transparent", "hover:bg-ui-button-transparent-hover", "active:bg-ui-button-transparent-pressed active:border-ui-border-base", "focus:shadow-borders-focus focus:bg-ui-bg-base focus:border-ui-border-base", "disabled:bg-transparent disabled:shadow-none"),
15
+ transparent: (0, clx_1.clx)("text-ui-fg-base border-ui-border-transparent bg-ui-button-transparent", "hover:bg-ui-button-transparent-hover", "active:bg-ui-button-transparent-pressed active:border-ui-border-base", "focus:shadow-borders-focus focus:bg-ui-bg-base focus:border-ui-border-base", "disabled:!border-none disabled:!bg-transparent disabled:!shadow-none"),
16
16
  danger: (0, clx_1.clx)("shadow-buttons-neutral text-ui-fg-on-color border-ui-border-danger bg-ui-button-danger after:button-danger-gradient", "hover:bg-ui-button-danger-hover hover:after:button-danger-hover-gradient", "active:bg-ui-button-danger-pressed active:after:button-danger-pressed-gradient", "focus:shadow-buttons-neutral-focus"),
17
17
  },
18
18
  size: {
19
- small: "txt-compact-xsmall-plus gap-x-0.5 px-[7px] py-[1px]",
20
- base: "txt-compact-small-plus gap-x-1.5 px-[11px] py-[5px]",
21
- large: "txt-compact-medium-plus gap-x-2 px-[15px] py-[9px]",
22
- xlarge: "txt-compact-large-plus gap-x-2 px-[19px] py-[13px]",
23
- },
24
- format: {
25
- default: "",
26
- icon: "",
19
+ base: "txt-compact-small-plus gap-x-1 px-2 py-[5px]",
20
+ large: "txt-compact-medium-plus gap-x-1 px-3 py-[9px]",
21
+ xlarge: "txt-compact-large-plus gap-x-1 px-4 py-[13px]",
27
22
  },
28
23
  },
29
24
  defaultVariants: {
30
- variant: "primary",
31
25
  size: "base",
32
- format: "default",
26
+ variant: "primary",
33
27
  },
34
- compoundVariants: [
35
- {
36
- size: "small",
37
- format: "icon",
38
- className: "px-px py-px",
39
- },
40
- {
41
- size: "base",
42
- format: "icon",
43
- className: "px-[5px] py-[5px]",
44
- },
45
- {
46
- size: "large",
47
- format: "icon",
48
- className: "px-[9px] py-[9px]",
49
- },
50
- {
51
- size: "xlarge",
52
- format: "icon",
53
- className: "px-[13px] py-[13px]",
54
- },
55
- ],
56
28
  });
57
29
  exports.buttonVariants = buttonVariants;
58
- const Button = React.forwardRef(({ size, variant, format, className, asChild = false, children, isLoading = false, disabled, ...props }, ref) => {
30
+ const Button = React.forwardRef(({ variant = "primary", size = "base", className, asChild = false, children, isLoading = false, disabled, ...props }, ref) => {
59
31
  const Component = asChild ? react_slot_1.Slot : "button";
60
32
  /**
61
33
  * In the case of a button where asChild is true, and isLoading is true, we ensure that
@@ -65,13 +37,13 @@ const Button = React.forwardRef(({ size, variant, format, className, asChild = f
65
37
  const renderInner = () => {
66
38
  if (isLoading) {
67
39
  return (React.createElement("span", { className: "pointer-events-none" },
68
- React.createElement("div", { className: (0, clx_1.clx)("bg-ui-bg-disabled absolute inset-0 z-50 flex items-center justify-center rounded-md") },
40
+ React.createElement("div", { className: (0, clx_1.clx)("bg-ui-bg-disabled absolute inset-0 flex items-center justify-center rounded-md") },
69
41
  React.createElement(icons_1.Spinner, { className: "animate-spin" })),
70
42
  children));
71
43
  }
72
44
  return children;
73
45
  };
74
- return (React.createElement(Component, { ref: ref, ...props, className: (0, clx_1.clx)(buttonVariants({ variant, size, format }), className), disabled: disabled || isLoading }, renderInner()));
46
+ return (React.createElement(Component, { ref: ref, ...props, className: (0, clx_1.clx)(buttonVariants({ variant, size }), className), disabled: disabled || isLoading }, renderInner()));
75
47
  });
76
48
  exports.Button = Button;
77
49
  Button.displayName = "Button";
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../../src/components/button/button.tsx"],"names":[],"mappings":";;;;AAAA,qDAA2C;AAC3C,uEAAiE;AACjE,qDAA8B;AAE9B,qCAAiC;AACjC,2CAAyC;AAEzC,MAAM,cAAc,GAAG,IAAA,8BAAG,EACxB,wSAAwS,EACxS;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,IAAA,SAAG,EACV,0HAA0H,EAC1H,8EAA8E,EAC9E,oFAAoF,EACpF,qCAAqC,CACtC;YACD,SAAS,EAAE,IAAA,SAAG,EACZ,iHAAiH,EACjH,4EAA4E,EAC5E,kFAAkF,EAClF,oCAAoC,CACrC;YACD,WAAW,EAAE,IAAA,SAAG,EACd,uEAAuE,EACvE,sCAAsC,EACtC,sEAAsE,EACtE,4EAA4E,EAC5E,8CAA8C,CAC/C;YACD,MAAM,EAAE,IAAA,SAAG,EACT,qHAAqH,EACrH,0EAA0E,EAC1E,gFAAgF,EAChF,oCAAoC,CACrC;SACF;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,qDAAqD;YAC5D,IAAI,EAAE,qDAAqD;YAC3D,KAAK,EAAE,oDAAoD;YAC3D,MAAM,EAAE,oDAAoD;SAC7D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;SACT;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,SAAS;KAClB;IACD,gBAAgB,EAAE;QAChB;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,aAAa;SACzB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,mBAAmB;SAC/B;QACD;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,mBAAmB;SAC/B;QACD;YACE,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,qBAAqB;SACjC;KACF;CACF,CACF,CAAA;AAgEgB,wCAAc;AAvD/B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CACE,EACE,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EACD,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,qFAAqF,CACtF;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,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,EACpE,QAAQ,EAAE,QAAQ,IAAI,SAAS,IAE9B,WAAW,EAAE,CACJ,CACb,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,wBAAM;AAFf,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\nimport { Spinner } from \"@medusajs/icons\"\n\nconst buttonVariants = cva(\n \"disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-lg border outline-none after:absolute after:inset-0 after:content-[''] disabled:!shadow-none disabled:after:hidden\",\n {\n variants: {\n variant: {\n primary: clx(\n \"shadow-buttons-colored text-ui-fg-on-inverted border-ui-border-loud bg-ui-button-inverted after:button-inverted-gradient\",\n \"hover:bg-ui-button-inverted-hover hover:after:button-inverted-hover-gradient\",\n \"active:bg-ui-button-inverted-pressed active:after:button-inverted-pressed-gradient\",\n \"focus:!shadow-buttons-colored-focus\"\n ),\n secondary: clx(\n \"shadow-buttons-neutral text-ui-fg-base border-ui-border-base 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:shadow-buttons-neutral-focus\"\n ),\n transparent: clx(\n \"text-ui-fg-base border-ui-border-transparent bg-ui-button-transparent\",\n \"hover:bg-ui-button-transparent-hover\",\n \"active:bg-ui-button-transparent-pressed active:border-ui-border-base\",\n \"focus:shadow-borders-focus focus:bg-ui-bg-base focus:border-ui-border-base\",\n \"disabled:bg-transparent disabled:shadow-none\"\n ),\n danger: clx(\n \"shadow-buttons-neutral text-ui-fg-on-color border-ui-border-danger bg-ui-button-danger after:button-danger-gradient\",\n \"hover:bg-ui-button-danger-hover hover:after:button-danger-hover-gradient\",\n \"active:bg-ui-button-danger-pressed active:after:button-danger-pressed-gradient\",\n \"focus:shadow-buttons-neutral-focus\"\n ),\n },\n size: {\n small: \"txt-compact-xsmall-plus gap-x-0.5 px-[7px] py-[1px]\",\n base: \"txt-compact-small-plus gap-x-1.5 px-[11px] py-[5px]\",\n large: \"txt-compact-medium-plus gap-x-2 px-[15px] py-[9px]\",\n xlarge: \"txt-compact-large-plus gap-x-2 px-[19px] py-[13px]\",\n },\n format: {\n default: \"\",\n icon: \"\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"base\",\n format: \"default\",\n },\n compoundVariants: [\n {\n size: \"small\",\n format: \"icon\",\n className: \"px-px py-px\",\n },\n {\n size: \"base\",\n format: \"icon\",\n className: \"px-[5px] py-[5px]\",\n },\n {\n size: \"large\",\n format: \"icon\",\n className: \"px-[9px] py-[9px]\",\n },\n {\n size: \"xlarge\",\n format: \"icon\",\n className: \"px-[13px] py-[13px]\",\n },\n ],\n }\n)\n\ninterface ButtonProps\n extends React.ComponentPropsWithoutRef<\"button\">,\n VariantProps<typeof buttonVariants> {\n isLoading?: boolean\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n size,\n variant,\n format,\n className,\n asChild = false,\n children,\n isLoading = false,\n disabled,\n ...props\n },\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 z-50 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(buttonVariants({ variant, size, format }), className)}\n disabled={disabled || isLoading}\n >\n {renderInner()}\n </Component>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"]}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../../src/components/button/button.tsx"],"names":[],"mappings":";;;;AAAA,qDAA2C;AAC3C,uEAAiE;AACjE,qDAA8B;AAE9B,qCAAiC;AACjC,2CAAyC;AAEzC,MAAM,cAAc,GAAG,IAAA,8BAAG,EACxB,IAAA,SAAG,EACD,qHAAqH,EACrH,oIAAoI,EACpI,iDAAiD,CAClD,EACD;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,IAAA,SAAG,EACV,0HAA0H,EAC1H,8EAA8E,EAC9E,oFAAoF,EACpF,qCAAqC,CACtC;YACD,SAAS,EAAE,IAAA,SAAG,EACZ,iHAAiH,EACjH,4EAA4E,EAC5E,kFAAkF,EAClF,oCAAoC,CACrC;YACD,WAAW,EAAE,IAAA,SAAG,EACd,uEAAuE,EACvE,sCAAsC,EACtC,sEAAsE,EACtE,4EAA4E,EAC5E,sEAAsE,CACvE;YACD,MAAM,EAAE,IAAA,SAAG,EACT,qHAAqH,EACrH,0EAA0E,EAC1E,gFAAgF,EAChF,oCAAoC,CACrC;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,8CAA8C;YACpD,KAAK,EAAE,+CAA+C;YACtD,MAAM,EAAE,+CAA+C;SACxD;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AA+DgB,wCAAc;AAtD/B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CACE,EACE,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,MAAM,EACb,SAAS,EACT,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EACD,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,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAC5D,QAAQ,EAAE,QAAQ,IAAI,SAAS,IAE9B,WAAW,EAAE,CACJ,CACb,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,wBAAM;AAFf,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\nimport { Spinner } from \"@medusajs/icons\"\n\nconst buttonVariants = cva(\n clx(\n \"transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md border outline-none\",\n \"disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:!shadow-none disabled:after:hidden\",\n \"after:absolute after:inset-0 after:content-['']\"\n ),\n {\n variants: {\n variant: {\n primary: clx(\n \"shadow-buttons-colored text-ui-fg-on-inverted border-ui-border-loud bg-ui-button-inverted after:button-inverted-gradient\",\n \"hover:bg-ui-button-inverted-hover hover:after:button-inverted-hover-gradient\",\n \"active:bg-ui-button-inverted-pressed active:after:button-inverted-pressed-gradient\",\n \"focus:!shadow-buttons-colored-focus\"\n ),\n secondary: clx(\n \"shadow-buttons-neutral text-ui-fg-base border-ui-border-base 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:shadow-buttons-neutral-focus\"\n ),\n transparent: clx(\n \"text-ui-fg-base border-ui-border-transparent bg-ui-button-transparent\",\n \"hover:bg-ui-button-transparent-hover\",\n \"active:bg-ui-button-transparent-pressed active:border-ui-border-base\",\n \"focus:shadow-borders-focus focus:bg-ui-bg-base focus:border-ui-border-base\",\n \"disabled:!border-none disabled:!bg-transparent disabled:!shadow-none\"\n ),\n danger: clx(\n \"shadow-buttons-neutral text-ui-fg-on-color border-ui-border-danger bg-ui-button-danger after:button-danger-gradient\",\n \"hover:bg-ui-button-danger-hover hover:after:button-danger-hover-gradient\",\n \"active:bg-ui-button-danger-pressed active:after:button-danger-pressed-gradient\",\n \"focus:shadow-buttons-neutral-focus\"\n ),\n },\n size: {\n base: \"txt-compact-small-plus gap-x-1 px-2 py-[5px]\",\n large: \"txt-compact-medium-plus gap-x-1 px-3 py-[9px]\",\n xlarge: \"txt-compact-large-plus gap-x-1 px-4 py-[13px]\",\n },\n },\n defaultVariants: {\n size: \"base\",\n variant: \"primary\",\n },\n }\n)\n\ninterface ButtonProps\n extends React.ComponentPropsWithoutRef<\"button\">,\n VariantProps<typeof buttonVariants> {\n isLoading?: boolean\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"primary\",\n size = \"base\",\n className,\n asChild = false,\n children,\n isLoading = false,\n disabled,\n ...props\n },\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(buttonVariants({ variant, size }), className)}\n disabled={disabled || isLoading}\n >\n {renderInner()}\n </Component>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"]}
@@ -6,8 +6,8 @@ const tslib_1 = require("tslib");
6
6
  const icons_1 = require("@medusajs/icons");
7
7
  const React = tslib_1.__importStar(require("react"));
8
8
  const react_day_picker_1 = require("react-day-picker");
9
- const button_1 = require("../button");
10
9
  const clx_1 = require("../../utils/clx");
10
+ const icon_button_1 = require("../icon-button");
11
11
  const Calendar = ({ className, classNames, mode = "single", showOutsideDays = true, ...props }) => {
12
12
  return (React.createElement(react_day_picker_1.DayPicker, { mode: mode, showOutsideDays: showOutsideDays, className: (0, clx_1.clx)(className), classNames: {
13
13
  months: "flex flex-col sm:flex-row",
@@ -15,14 +15,14 @@ const Calendar = ({ className, classNames, mode = "single", showOutsideDays = tr
15
15
  caption: "flex justify-center relative items-center h-9",
16
16
  caption_label: "txt-compact-small-plus absolute bottom-0 left-0 right-0 top-1 flex items-center justify-center text-ui-fg-base",
17
17
  nav: "space-x-1 flex items-center bg-ui-bg-base-pressed rounded-md w-full h-full justify-between p-0.5",
18
- nav_button: (0, clx_1.clx)((0, button_1.buttonVariants)({ variant: "secondary", format: "icon" }), "h-8 w-8"),
18
+ nav_button: (0, clx_1.clx)((0, icon_button_1.iconButtonVariants)({ variant: "primary", size: "base" })),
19
19
  nav_button_previous: "!absolute left-0.5",
20
20
  nav_button_next: "!absolute right-0.5",
21
21
  table: "w-full border-collapse space-y-1",
22
22
  head_row: "flex w-full gap-x-2",
23
23
  head_cell: (0, clx_1.clx)("txt-compact-small-plus text-ui-fg-muted m-0 box-border flex h-8 w-8 items-center justify-center p-0"),
24
24
  row: "flex w-full mt-2 gap-x-2",
25
- cell: "txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative focus-within:z-20",
25
+ cell: "txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative",
26
26
  day: "txt-compact-small-plus text-ui-fg-base bg-ui-bg-base border-ui-bg-base hover:bg-ui-bg-base-hover focus:!border-ui-border-interactive focus:shadow-borders-focus h-8 w-8 rounded-md border p-0 text-center outline-none transition-all",
27
27
  day_selected: "bg-ui-bg-interactive text-ui-fg-on-color hover:bg-ui-bg-interactive focus:bg-ui-bg-interactive",
28
28
  day_outside: "text-ui-fg-disabled aria-selected:text-ui-fg-on-color",
@@ -55,7 +55,7 @@ const Day = ({ date, displayMonth }) => {
55
55
  return (React.createElement("div", { ...divProps, className: (0, clx_1.clx)("flex items-center justify-center", divProps.className) }));
56
56
  }
57
57
  const { children: buttonChildren, className: buttonClassName, ...buttonPropsRest } = buttonProps;
58
- return (React.createElement("button", { ref: ref, ...buttonPropsRest, className: (0, clx_1.clx)("relative", buttonClassName) },
58
+ return (React.createElement("button", { ref: ref, ...buttonPropsRest, type: "button", className: (0, clx_1.clx)("relative", buttonClassName) },
59
59
  buttonChildren,
60
60
  today && (React.createElement("span", { className: (0, clx_1.clx)("absolute right-[5px] top-[5px] h-1 w-1 rounded-full", {
61
61
  "bg-ui-fg-interactive": !selected,
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../../src/components/calendar/calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { ChevronLeftMini, ChevronRightMini } from \"@medusajs/icons\"\nimport * as React from \"react\"\nimport {\n DayPicker,\n useDayRender,\n type DayPickerRangeProps,\n type DayPickerSingleProps,\n type DayProps,\n} from \"react-day-picker\"\n\nimport { buttonVariants } from \"@/components/button\"\nimport { clx } from \"@/utils/clx\"\n\ntype OmitKeys<T, K extends keyof T> = {\n [P in keyof T as P extends K ? never : P]: T[P]\n}\n\ntype KeysToOmit = \"showWeekNumber\" | \"captionLayout\" | \"mode\"\n\ntype SingleProps = OmitKeys<DayPickerSingleProps, KeysToOmit>\ntype RangeProps = OmitKeys<DayPickerRangeProps, KeysToOmit>\n\ntype CalendarProps =\n | ({\n mode: \"single\"\n } & SingleProps)\n | ({\n mode?: undefined\n } & SingleProps)\n | ({\n mode: \"range\"\n } & RangeProps)\n\nconst Calendar = ({\n className,\n classNames,\n mode = \"single\",\n showOutsideDays = true,\n ...props\n}: CalendarProps) => {\n return (\n <DayPicker\n mode={mode}\n showOutsideDays={showOutsideDays}\n className={clx(className)}\n classNames={{\n months: \"flex flex-col sm:flex-row\",\n month: \"space-y-2 p-3\",\n caption: \"flex justify-center relative items-center h-9\",\n caption_label:\n \"txt-compact-small-plus absolute bottom-0 left-0 right-0 top-1 flex items-center justify-center text-ui-fg-base\",\n nav: \"space-x-1 flex items-center bg-ui-bg-base-pressed rounded-md w-full h-full justify-between p-0.5\",\n nav_button: clx(\n buttonVariants({ variant: \"secondary\", format: \"icon\" }),\n \"h-8 w-8\"\n ),\n nav_button_previous: \"!absolute left-0.5\",\n nav_button_next: \"!absolute right-0.5\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex w-full gap-x-2\",\n head_cell: clx(\n \"txt-compact-small-plus text-ui-fg-muted m-0 box-border flex h-8 w-8 items-center justify-center p-0\"\n ),\n row: \"flex w-full mt-2 gap-x-2\",\n cell: \"txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative focus-within:z-20\",\n day: \"txt-compact-small-plus text-ui-fg-base bg-ui-bg-base border-ui-bg-base hover:bg-ui-bg-base-hover focus:!border-ui-border-interactive focus:shadow-borders-focus h-8 w-8 rounded-md border p-0 text-center outline-none transition-all\",\n day_selected:\n \"bg-ui-bg-interactive text-ui-fg-on-color hover:bg-ui-bg-interactive focus:bg-ui-bg-interactive\",\n day_outside: \"text-ui-fg-disabled aria-selected:text-ui-fg-on-color\",\n day_disabled: \"text-ui-fg-disabled\",\n day_range_middle:\n \"aria-selected:!bg-ui-bg-highlight aria-selected:!text-ui-fg-interactive\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: () => <ChevronLeftMini />,\n IconRight: () => <ChevronRightMini />,\n Day: Day,\n }}\n {...(props as SingleProps & RangeProps)}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nconst Day = ({ date, displayMonth }: DayProps) => {\n const ref = React.useRef<HTMLButtonElement>(null)\n const { activeModifiers, buttonProps, divProps, isButton, isHidden } =\n useDayRender(date, displayMonth, ref)\n\n const { selected, today, disabled, range_middle } = activeModifiers\n\n React.useEffect(() => {\n if (selected) {\n ref.current?.focus()\n }\n }, [selected])\n\n if (isHidden) {\n return <></>\n }\n\n if (!isButton) {\n return (\n <div\n {...divProps}\n className={clx(\"flex items-center justify-center\", divProps.className)}\n />\n )\n }\n\n const {\n children: buttonChildren,\n className: buttonClassName,\n ...buttonPropsRest\n } = buttonProps\n\n return (\n <button\n ref={ref}\n {...buttonPropsRest}\n className={clx(\"relative\", buttonClassName)}\n >\n {buttonChildren}\n {today && (\n <span\n className={clx(\n \"absolute right-[5px] top-[5px] h-1 w-1 rounded-full\",\n {\n \"bg-ui-fg-interactive\": !selected,\n \"bg-ui-fg-on-color\": selected,\n \"!bg-ui-fg-interactive\": selected && range_middle,\n \"bg-ui-fg-disabled\": disabled,\n }\n )}\n />\n )}\n </button>\n )\n}\n\nexport { Calendar }\n"]}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../../src/components/calendar/calendar.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,2CAAmE;AACnE,qDAA8B;AAC9B,uDAMyB;AAEzB,qCAAiC;AACjC,gDAAmD;AAsBnD,MAAM,QAAQ,GAAG,CAAC,EAChB,SAAS,EACT,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,eAAe,GAAG,IAAI,EACtB,GAAG,KAAK,EACM,EAAE,EAAE;IAClB,OAAO,CACL,oBAAC,4BAAS,IACR,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,IAAA,SAAG,EAAC,SAAS,CAAC,EACzB,UAAU,EAAE;YACV,MAAM,EAAE,2BAA2B;YACnC,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,+CAA+C;YACxD,aAAa,EACX,gHAAgH;YAClH,GAAG,EAAE,kGAAkG;YACvG,UAAU,EAAE,IAAA,SAAG,EACb,IAAA,gCAAkB,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CACzD;YACD,mBAAmB,EAAE,oBAAoB;YACzC,eAAe,EAAE,qBAAqB;YACtC,KAAK,EAAE,kCAAkC;YACzC,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,IAAA,SAAG,EACZ,qGAAqG,CACtG;YACD,GAAG,EAAE,0BAA0B;YAC/B,IAAI,EAAE,kFAAkF;YACxF,GAAG,EAAE,uOAAuO;YAC5O,YAAY,EACV,gGAAgG;YAClG,WAAW,EAAE,uDAAuD;YACpE,YAAY,EAAE,qBAAqB;YACnC,gBAAgB,EACd,yEAAyE;YAC3E,UAAU,EAAE,WAAW;YACvB,GAAG,UAAU;SACd,EACD,UAAU,EAAE;YACV,QAAQ,EAAE,GAAG,EAAE,CAAC,oBAAC,uBAAe,OAAG;YACnC,SAAS,EAAE,GAAG,EAAE,CAAC,oBAAC,wBAAgB,OAAG;YACrC,GAAG,EAAE,GAAG;SACT,KACI,KAAkC,GACvC,CACH,CAAA;AACH,CAAC,CAAA;AA4DQ,4BAAQ;AA3DjB,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,EAAY,EAAE,EAAE;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAoB,IAAI,CAAC,CAAA;IACjD,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAClE,IAAA,+BAAY,EAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;IAEvC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,eAAe,CAAA;IAEnE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,IAAI,QAAQ,EAAE;YACZ,MAAA,GAAG,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA;SACrB;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,IAAI,QAAQ,EAAE;QACZ,OAAO,yCAAK,CAAA;KACb;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,CACL,gCACM,QAAQ,EACZ,SAAS,EAAE,IAAA,SAAG,EAAC,kCAAkC,EAAE,QAAQ,CAAC,SAAS,CAAC,GACtE,CACH,CAAA;KACF;IAED,MAAM,EACJ,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,eAAe,EAC1B,GAAG,eAAe,EACnB,GAAG,WAAW,CAAA;IAEf,OAAO,CACL,gCACE,GAAG,EAAE,GAAG,KACJ,eAAe,EACnB,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAA,SAAG,EAAC,UAAU,EAAE,eAAe,CAAC;QAE1C,cAAc;QACd,KAAK,IAAI,CACR,8BACE,SAAS,EAAE,IAAA,SAAG,EACZ,qDAAqD,EACrD;gBACE,sBAAsB,EAAE,CAAC,QAAQ;gBACjC,mBAAmB,EAAE,QAAQ;gBAC7B,uBAAuB,EAAE,QAAQ,IAAI,YAAY;gBACjD,mBAAmB,EAAE,QAAQ;aAC9B,CACF,GACD,CACH,CACM,CACV,CAAA;AACH,CAAC,CAAA","sourcesContent":["\"use client\"\n\nimport { ChevronLeftMini, ChevronRightMini } from \"@medusajs/icons\"\nimport * as React from \"react\"\nimport {\n DayPicker,\n useDayRender,\n type DayPickerRangeProps,\n type DayPickerSingleProps,\n type DayProps,\n} from \"react-day-picker\"\n\nimport { clx } from \"@/utils/clx\"\nimport { iconButtonVariants } from \"../icon-button\"\n\ntype OmitKeys<T, K extends keyof T> = {\n [P in keyof T as P extends K ? never : P]: T[P]\n}\n\ntype KeysToOmit = \"showWeekNumber\" | \"captionLayout\" | \"mode\"\n\ntype SingleProps = OmitKeys<DayPickerSingleProps, KeysToOmit>\ntype RangeProps = OmitKeys<DayPickerRangeProps, KeysToOmit>\n\ntype CalendarProps =\n | ({\n mode: \"single\"\n } & SingleProps)\n | ({\n mode?: undefined\n } & SingleProps)\n | ({\n mode: \"range\"\n } & RangeProps)\n\nconst Calendar = ({\n className,\n classNames,\n mode = \"single\",\n showOutsideDays = true,\n ...props\n}: CalendarProps) => {\n return (\n <DayPicker\n mode={mode}\n showOutsideDays={showOutsideDays}\n className={clx(className)}\n classNames={{\n months: \"flex flex-col sm:flex-row\",\n month: \"space-y-2 p-3\",\n caption: \"flex justify-center relative items-center h-9\",\n caption_label:\n \"txt-compact-small-plus absolute bottom-0 left-0 right-0 top-1 flex items-center justify-center text-ui-fg-base\",\n nav: \"space-x-1 flex items-center bg-ui-bg-base-pressed rounded-md w-full h-full justify-between p-0.5\",\n nav_button: clx(\n iconButtonVariants({ variant: \"primary\", size: \"base\" })\n ),\n nav_button_previous: \"!absolute left-0.5\",\n nav_button_next: \"!absolute right-0.5\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex w-full gap-x-2\",\n head_cell: clx(\n \"txt-compact-small-plus text-ui-fg-muted m-0 box-border flex h-8 w-8 items-center justify-center p-0\"\n ),\n row: \"flex w-full mt-2 gap-x-2\",\n cell: \"txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative\",\n day: \"txt-compact-small-plus text-ui-fg-base bg-ui-bg-base border-ui-bg-base hover:bg-ui-bg-base-hover focus:!border-ui-border-interactive focus:shadow-borders-focus h-8 w-8 rounded-md border p-0 text-center outline-none transition-all\",\n day_selected:\n \"bg-ui-bg-interactive text-ui-fg-on-color hover:bg-ui-bg-interactive focus:bg-ui-bg-interactive\",\n day_outside: \"text-ui-fg-disabled aria-selected:text-ui-fg-on-color\",\n day_disabled: \"text-ui-fg-disabled\",\n day_range_middle:\n \"aria-selected:!bg-ui-bg-highlight aria-selected:!text-ui-fg-interactive\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: () => <ChevronLeftMini />,\n IconRight: () => <ChevronRightMini />,\n Day: Day,\n }}\n {...(props as SingleProps & RangeProps)}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nconst Day = ({ date, displayMonth }: DayProps) => {\n const ref = React.useRef<HTMLButtonElement>(null)\n const { activeModifiers, buttonProps, divProps, isButton, isHidden } =\n useDayRender(date, displayMonth, ref)\n\n const { selected, today, disabled, range_middle } = activeModifiers\n\n React.useEffect(() => {\n if (selected) {\n ref.current?.focus()\n }\n }, [selected])\n\n if (isHidden) {\n return <></>\n }\n\n if (!isButton) {\n return (\n <div\n {...divProps}\n className={clx(\"flex items-center justify-center\", divProps.className)}\n />\n )\n }\n\n const {\n children: buttonChildren,\n className: buttonClassName,\n ...buttonPropsRest\n } = buttonProps\n\n return (\n <button\n ref={ref}\n {...buttonPropsRest}\n type=\"button\"\n className={clx(\"relative\", buttonClassName)}\n >\n {buttonChildren}\n {today && (\n <span\n className={clx(\n \"absolute right-[5px] top-[5px] h-1 w-1 rounded-full\",\n {\n \"bg-ui-fg-interactive\": !selected,\n \"bg-ui-fg-on-color\": selected,\n \"!bg-ui-fg-interactive\": selected && range_middle,\n \"bg-ui-fg-disabled\": disabled,\n }\n )}\n />\n )}\n </button>\n )\n}\n\nexport { Calendar }\n"]}
@@ -1,8 +1,9 @@
1
- import React from "react";
1
+ import * as React from "react";
2
2
  export type CodeSnippet = {
3
3
  label: string;
4
4
  language: string;
5
5
  code: string;
6
+ hideLineNumbers?: boolean;
6
7
  };
7
8
  type RootProps = {
8
9
  snippets: CodeSnippet[];
@@ -10,11 +11,8 @@ type RootProps = {
10
11
  type HeaderProps = {
11
12
  hideLabels?: boolean;
12
13
  };
13
- type BodyProps = {
14
- hideLineNumbers?: boolean;
15
- };
16
14
  declare const CodeBlock: (({ snippets, className, children, ...props }: React.HTMLAttributes<HTMLDivElement> & RootProps) => React.JSX.Element) & {
17
- Body: ({ className, hideLineNumbers, ...props }: React.HTMLAttributes<HTMLDivElement> & BodyProps) => React.JSX.Element;
15
+ Body: ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => React.JSX.Element;
18
16
  Header: (({ children, className, hideLabels, ...props }: React.HTMLAttributes<HTMLDivElement> & HeaderProps) => React.JSX.Element) & {
19
17
  Meta: ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => React.JSX.Element;
20
18
  };
@@ -3,41 +3,41 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.CodeBlock = void 0;
5
5
  const tslib_1 = require("tslib");
6
+ const prism_react_renderer_1 = require("prism-react-renderer");
7
+ const React = tslib_1.__importStar(require("react"));
6
8
  const copy_1 = require("../copy");
7
9
  const clx_1 = require("../../utils/clx");
8
- const prism_react_renderer_1 = require("prism-react-renderer");
9
- const react_1 = tslib_1.__importStar(require("react"));
10
- const CodeBlockContext = (0, react_1.createContext)(null);
10
+ const CodeBlockContext = React.createContext(null);
11
11
  const useCodeBlockContext = () => {
12
- const context = (0, react_1.useContext)(CodeBlockContext);
12
+ const context = React.useContext(CodeBlockContext);
13
13
  if (context === null)
14
14
  throw new Error("useCodeBlockContext can only be used within a CodeBlockContext");
15
15
  return context;
16
16
  };
17
17
  const Root = ({ snippets, className, children, ...props }) => {
18
- const [active, setActive] = (0, react_1.useState)(snippets[0]);
19
- return (react_1.default.createElement(CodeBlockContext.Provider, { value: { snippets, active, setActive } },
20
- react_1.default.createElement("div", { className: (0, clx_1.clx)("border-ui-code-border overflow-hidden rounded-lg border", className), ...props }, children)));
18
+ const [active, setActive] = React.useState(snippets[0]);
19
+ return (React.createElement(CodeBlockContext.Provider, { value: { snippets, active, setActive } },
20
+ React.createElement("div", { className: (0, clx_1.clx)("border-ui-code-border overflow-hidden rounded-lg border", className), ...props }, children)));
21
21
  };
22
22
  const HeaderComponent = ({ children, className, hideLabels = false, ...props }) => {
23
23
  const { snippets, active, setActive } = useCodeBlockContext();
24
- return (react_1.default.createElement("div", { className: (0, clx_1.clx)("border-b-ui-code-border bg-ui-code-bg-header flex items-center gap-2 border-b px-4 py-3", className), ...props },
24
+ return (React.createElement("div", { className: (0, clx_1.clx)("border-b-ui-code-border bg-ui-code-bg-header flex items-center gap-2 border-b px-4 py-3", className), ...props },
25
25
  !hideLabels &&
26
- snippets.map((snippet) => (react_1.default.createElement("div", { className: (0, clx_1.clx)("text-ui-code-text-subtle txt-compact-small-plus cursor-pointer rounded-full border border-transparent px-3 py-2 transition-all", {
26
+ snippets.map((snippet) => (React.createElement("div", { className: (0, clx_1.clx)("text-ui-code-text-subtle txt-compact-small-plus cursor-pointer rounded-full border border-transparent px-3 py-2 transition-all", {
27
27
  "text-ui-code-text-base border-ui-code-border bg-ui-code-bg-base cursor-default": active.label === snippet.label,
28
28
  }), key: snippet.label, onClick: () => setActive(snippet) }, snippet.label))),
29
29
  children));
30
30
  };
31
31
  const Meta = ({ className, ...props }) => {
32
- return (react_1.default.createElement("div", { className: (0, clx_1.clx)("text-ui-code-text-subtle ml-auto", className), ...props }));
32
+ return (React.createElement("div", { className: (0, clx_1.clx)("text-ui-code-text-subtle ml-auto", className), ...props }));
33
33
  };
34
34
  const Header = Object.assign(HeaderComponent, { Meta });
35
- const Body = ({ className, hideLineNumbers = false, ...props }) => {
35
+ const Body = ({ className, ...props }) => {
36
36
  const { active } = useCodeBlockContext();
37
- return (react_1.default.createElement("div", { className: (0, clx_1.clx)("bg-ui-code-bg-base relative p-4", className), ...props },
38
- react_1.default.createElement(copy_1.Copy, { content: active.code, className: "text-ui-code-icon absolute right-4 top-4" }),
39
- react_1.default.createElement("div", { className: "max-w-[90%]" },
40
- react_1.default.createElement(prism_react_renderer_1.Highlight, { theme: {
37
+ return (React.createElement("div", { className: (0, clx_1.clx)("bg-ui-code-bg-base relative p-4", className), ...props },
38
+ React.createElement(copy_1.Copy, { content: active.code, className: "text-ui-code-icon absolute right-4 top-4" }),
39
+ React.createElement("div", { className: "max-w-[90%]" },
40
+ React.createElement(prism_react_renderer_1.Highlight, { theme: {
41
41
  ...prism_react_renderer_1.themes.palenight,
42
42
  plain: {
43
43
  color: "rgba(249, 250, 251, 1)",
@@ -58,12 +58,12 @@ const Body = ({ className, hideLineNumbers = false, ...props }) => {
58
58
  },
59
59
  ...prism_react_renderer_1.themes.palenight.styles,
60
60
  ],
61
- }, code: active.code, language: active.language }, ({ style, tokens, getLineProps, getTokenProps }) => (react_1.default.createElement("pre", { className: "txt-compact-small whitespace-pre-wrap bg-transparent font-mono", style: {
61
+ }, code: active.code, language: active.language }, ({ style, tokens, getLineProps, getTokenProps }) => (React.createElement("pre", { className: "txt-compact-small whitespace-pre-wrap bg-transparent font-mono", style: {
62
62
  ...style,
63
63
  background: "transparent",
64
- } }, tokens.map((line, i) => (react_1.default.createElement("div", { key: i, ...getLineProps({ line }), className: "flex" },
65
- !hideLineNumbers && (react_1.default.createElement("span", { className: "text-ui-code-text-subtle" }, i + 1)),
66
- react_1.default.createElement("div", { className: "pl-4" }, line.map((token, key) => (react_1.default.createElement("span", { key: key, ...getTokenProps({ token }) })))))))))))));
64
+ } }, tokens.map((line, i) => (React.createElement("div", { key: i, ...getLineProps({ line }), className: "flex" },
65
+ !active.hideLineNumbers && (React.createElement("span", { className: "text-ui-code-text-subtle" }, i + 1)),
66
+ React.createElement("div", { className: "pl-4" }, line.map((token, key) => (React.createElement("span", { key: key, ...getTokenProps({ token }) })))))))))))));
67
67
  };
68
68
  const CodeBlock = Object.assign(Root, { Body, Header, Meta });
69
69
  exports.CodeBlock = CodeBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../../src/components/code-block/code-block.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { Copy } from \"@/components/copy\"\nimport { clx } from \"@/utils/clx\"\nimport { Highlight, themes } from \"prism-react-renderer\"\nimport React, { createContext, useContext, useState } from \"react\"\n\nexport type CodeSnippet = {\n label: string\n language: string\n code: string\n}\n\ntype CodeBlockState = {\n snippets: CodeSnippet[]\n active: CodeSnippet\n setActive: (active: CodeSnippet) => void\n} | null\n\nconst CodeBlockContext = createContext<CodeBlockState>(null)\n\nconst useCodeBlockContext = () => {\n const context = useContext(CodeBlockContext)\n\n if (context === null)\n throw new Error(\n \"useCodeBlockContext can only be used within a CodeBlockContext\"\n )\n\n return context\n}\n\ntype RootProps = {\n snippets: CodeSnippet[]\n}\n\nconst Root = ({\n snippets,\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & RootProps) => {\n const [active, setActive] = useState(snippets[0])\n\n return (\n <CodeBlockContext.Provider value={{ snippets, active, setActive }}>\n <div\n className={clx(\n \"border-ui-code-border overflow-hidden rounded-lg border\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </CodeBlockContext.Provider>\n )\n}\n\ntype HeaderProps = {\n hideLabels?: boolean\n}\n\nconst HeaderComponent = ({\n children,\n className,\n hideLabels = false,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & HeaderProps) => {\n const { snippets, active, setActive } = useCodeBlockContext()\n return (\n <div\n className={clx(\n \"border-b-ui-code-border bg-ui-code-bg-header flex items-center gap-2 border-b px-4 py-3\",\n className\n )}\n {...props}\n >\n {!hideLabels &&\n snippets.map((snippet) => (\n <div\n className={clx(\n \"text-ui-code-text-subtle txt-compact-small-plus cursor-pointer rounded-full border border-transparent px-3 py-2 transition-all\",\n {\n \"text-ui-code-text-base border-ui-code-border bg-ui-code-bg-base cursor-default\":\n active.label === snippet.label,\n }\n )}\n key={snippet.label}\n onClick={() => setActive(snippet)}\n >\n {snippet.label}\n </div>\n ))}\n {children}\n </div>\n )\n}\n\nconst Meta = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n return (\n <div\n className={clx(\"text-ui-code-text-subtle ml-auto\", className)}\n {...props}\n />\n )\n}\n\nconst Header = Object.assign(HeaderComponent, { Meta })\n\ntype BodyProps = {\n hideLineNumbers?: boolean\n}\n\nconst Body = ({\n className,\n hideLineNumbers = false,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & BodyProps) => {\n const { active } = useCodeBlockContext()\n return (\n <div\n className={clx(\"bg-ui-code-bg-base relative p-4\", className)}\n {...props}\n >\n <Copy\n content={active.code}\n className=\"text-ui-code-icon absolute right-4 top-4\"\n />\n <div className=\"max-w-[90%]\">\n <Highlight\n theme={{\n ...themes.palenight,\n plain: {\n color: \"rgba(249, 250, 251, 1)\",\n backgroundColor: \"#111827\",\n },\n styles: [\n {\n types: [\"keyword\"],\n style: {\n color: \"var(--fg-on-color)\",\n },\n },\n {\n types: [\"maybe-class-name\"],\n style: {\n color: \"rgb(255, 203, 107)\",\n },\n },\n ...themes.palenight.styles,\n ],\n }}\n code={active.code}\n language={active.language}\n >\n {({ style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className=\"txt-compact-small whitespace-pre-wrap bg-transparent font-mono\"\n style={{\n ...style,\n background: \"transparent\",\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })} className=\"flex\">\n {!hideLineNumbers && (\n <span className=\"text-ui-code-text-subtle\">{i + 1}</span>\n )}\n <div className=\"pl-4\">\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </div>\n </div>\n )\n}\n\nconst CodeBlock = Object.assign(Root, { Body, Header, Meta })\n\nexport { CodeBlock }\n"]}
1
+ {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../../src/components/code-block/code-block.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\nimport { Highlight, themes } from \"prism-react-renderer\"\nimport * as React from \"react\"\n\nimport { Copy } from \"@/components/copy\"\nimport { clx } from \"@/utils/clx\"\n\nexport type CodeSnippet = {\n label: string\n language: string\n code: string\n hideLineNumbers?: boolean\n}\n\ntype CodeBlockState = {\n snippets: CodeSnippet[]\n active: CodeSnippet\n setActive: (active: CodeSnippet) => void\n} | null\n\nconst CodeBlockContext = React.createContext<CodeBlockState>(null)\n\nconst useCodeBlockContext = () => {\n const context = React.useContext(CodeBlockContext)\n\n if (context === null)\n throw new Error(\n \"useCodeBlockContext can only be used within a CodeBlockContext\"\n )\n\n return context\n}\n\ntype RootProps = {\n snippets: CodeSnippet[]\n}\n\nconst Root = ({\n snippets,\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & RootProps) => {\n const [active, setActive] = React.useState(snippets[0])\n\n return (\n <CodeBlockContext.Provider value={{ snippets, active, setActive }}>\n <div\n className={clx(\n \"border-ui-code-border overflow-hidden rounded-lg border\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </CodeBlockContext.Provider>\n )\n}\n\ntype HeaderProps = {\n hideLabels?: boolean\n}\n\nconst HeaderComponent = ({\n children,\n className,\n hideLabels = false,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & HeaderProps) => {\n const { snippets, active, setActive } = useCodeBlockContext()\n return (\n <div\n className={clx(\n \"border-b-ui-code-border bg-ui-code-bg-header flex items-center gap-2 border-b px-4 py-3\",\n className\n )}\n {...props}\n >\n {!hideLabels &&\n snippets.map((snippet) => (\n <div\n className={clx(\n \"text-ui-code-text-subtle txt-compact-small-plus cursor-pointer rounded-full border border-transparent px-3 py-2 transition-all\",\n {\n \"text-ui-code-text-base border-ui-code-border bg-ui-code-bg-base cursor-default\":\n active.label === snippet.label,\n }\n )}\n key={snippet.label}\n onClick={() => setActive(snippet)}\n >\n {snippet.label}\n </div>\n ))}\n {children}\n </div>\n )\n}\n\nconst Meta = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n return (\n <div\n className={clx(\"text-ui-code-text-subtle ml-auto\", className)}\n {...props}\n />\n )\n}\n\nconst Header = Object.assign(HeaderComponent, { Meta })\n\nconst Body = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n const { active } = useCodeBlockContext()\n return (\n <div\n className={clx(\"bg-ui-code-bg-base relative p-4\", className)}\n {...props}\n >\n <Copy\n content={active.code}\n className=\"text-ui-code-icon absolute right-4 top-4\"\n />\n <div className=\"max-w-[90%]\">\n <Highlight\n theme={{\n ...themes.palenight,\n plain: {\n color: \"rgba(249, 250, 251, 1)\",\n backgroundColor: \"#111827\",\n },\n styles: [\n {\n types: [\"keyword\"],\n style: {\n color: \"var(--fg-on-color)\",\n },\n },\n {\n types: [\"maybe-class-name\"],\n style: {\n color: \"rgb(255, 203, 107)\",\n },\n },\n ...themes.palenight.styles,\n ],\n }}\n code={active.code}\n language={active.language}\n >\n {({ style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className=\"txt-compact-small whitespace-pre-wrap bg-transparent font-mono\"\n style={{\n ...style,\n background: \"transparent\",\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })} className=\"flex\">\n {!active.hideLineNumbers && (\n <span className=\"text-ui-code-text-subtle\">{i + 1}</span>\n )}\n <div className=\"pl-4\">\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </div>\n </div>\n )\n}\n\nconst CodeBlock = Object.assign(Root, { Body, Header, Meta })\n\nexport { CodeBlock }\n"]}
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ type CommandBarProps = React.PropsWithChildren<{
3
+ open?: boolean;
4
+ onOpenChange?: (open: boolean) => void;
5
+ defaultOpen?: boolean;
6
+ disableAutoFocus?: boolean;
7
+ }>;
8
+ interface CommandProps extends Omit<React.ComponentPropsWithoutRef<"button">, "children" | "onClick"> {
9
+ action: () => void | Promise<void>;
10
+ label: string;
11
+ shortcut: string;
12
+ }
13
+ declare const CommandBar: {
14
+ ({ open, onOpenChange, defaultOpen, disableAutoFocus, children, }: CommandBarProps): React.JSX.Element;
15
+ displayName: string;
16
+ } & {
17
+ Command: React.ForwardRefExoticComponent<CommandProps & React.RefAttributes<HTMLButtonElement>>;
18
+ Value: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
19
+ Bar: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
+ Seperator: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "children"> & React.RefAttributes<HTMLDivElement>>;
21
+ };
22
+ export { CommandBar };