@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
@@ -2,8 +2,8 @@
2
2
  import { ChevronLeftMini, ChevronRightMini } from "@medusajs/icons";
3
3
  import * as React from "react";
4
4
  import { DayPicker, useDayRender, } from "react-day-picker";
5
- import { buttonVariants } from "../button";
6
5
  import { clx } from "../../utils/clx";
6
+ import { iconButtonVariants } from "../icon-button";
7
7
  const Calendar = ({ className, classNames, mode = "single", showOutsideDays = true, ...props }) => {
8
8
  return (React.createElement(DayPicker, { mode: mode, showOutsideDays: showOutsideDays, className: clx(className), classNames: {
9
9
  months: "flex flex-col sm:flex-row",
@@ -11,14 +11,14 @@ const Calendar = ({ className, classNames, mode = "single", showOutsideDays = tr
11
11
  caption: "flex justify-center relative items-center h-9",
12
12
  caption_label: "txt-compact-small-plus absolute bottom-0 left-0 right-0 top-1 flex items-center justify-center text-ui-fg-base",
13
13
  nav: "space-x-1 flex items-center bg-ui-bg-base-pressed rounded-md w-full h-full justify-between p-0.5",
14
- nav_button: clx(buttonVariants({ variant: "secondary", format: "icon" }), "h-8 w-8"),
14
+ nav_button: clx(iconButtonVariants({ variant: "primary", size: "base" })),
15
15
  nav_button_previous: "!absolute left-0.5",
16
16
  nav_button_next: "!absolute right-0.5",
17
17
  table: "w-full border-collapse space-y-1",
18
18
  head_row: "flex w-full gap-x-2",
19
19
  head_cell: clx("txt-compact-small-plus text-ui-fg-muted m-0 box-border flex h-8 w-8 items-center justify-center p-0"),
20
20
  row: "flex w-full mt-2 gap-x-2",
21
- cell: "txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative focus-within:z-20",
21
+ cell: "txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative",
22
22
  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",
23
23
  day_selected: "bg-ui-bg-interactive text-ui-fg-on-color hover:bg-ui-bg-interactive focus:bg-ui-bg-interactive",
24
24
  day_outside: "text-ui-fg-disabled aria-selected:text-ui-fg-on-color",
@@ -50,7 +50,7 @@ const Day = ({ date, displayMonth }) => {
50
50
  return (React.createElement("div", { ...divProps, className: clx("flex items-center justify-center", divProps.className) }));
51
51
  }
52
52
  const { children: buttonChildren, className: buttonClassName, ...buttonPropsRest } = buttonProps;
53
- return (React.createElement("button", { ref: ref, ...buttonPropsRest, className: clx("relative", buttonClassName) },
53
+ return (React.createElement("button", { ref: ref, ...buttonPropsRest, type: "button", className: clx("relative", buttonClassName) },
54
54
  buttonChildren,
55
55
  today && (React.createElement("span", { className: clx("absolute right-[5px] top-[5px] h-1 w-1 rounded-full", {
56
56
  "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":"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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 { 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
  };
@@ -1,17 +1,17 @@
1
1
  "use client";
2
+ import { Highlight, themes } from "prism-react-renderer";
3
+ import * as React from "react";
2
4
  import { Copy } from "../copy";
3
5
  import { clx } from "../../utils/clx";
4
- import { Highlight, themes } from "prism-react-renderer";
5
- import React, { createContext, useContext, useState } from "react";
6
- const CodeBlockContext = createContext(null);
6
+ const CodeBlockContext = React.createContext(null);
7
7
  const useCodeBlockContext = () => {
8
- const context = useContext(CodeBlockContext);
8
+ const context = React.useContext(CodeBlockContext);
9
9
  if (context === null)
10
10
  throw new Error("useCodeBlockContext can only be used within a CodeBlockContext");
11
11
  return context;
12
12
  };
13
13
  const Root = ({ snippets, className, children, ...props }) => {
14
- const [active, setActive] = useState(snippets[0]);
14
+ const [active, setActive] = React.useState(snippets[0]);
15
15
  return (React.createElement(CodeBlockContext.Provider, { value: { snippets, active, setActive } },
16
16
  React.createElement("div", { className: clx("border-ui-code-border overflow-hidden rounded-lg border", className), ...props }, children)));
17
17
  };
@@ -28,7 +28,7 @@ const Meta = ({ className, ...props }) => {
28
28
  return (React.createElement("div", { className: clx("text-ui-code-text-subtle ml-auto", className), ...props }));
29
29
  };
30
30
  const Header = Object.assign(HeaderComponent, { Meta });
31
- const Body = ({ className, hideLineNumbers = false, ...props }) => {
31
+ const Body = ({ className, ...props }) => {
32
32
  const { active } = useCodeBlockContext();
33
33
  return (React.createElement("div", { className: clx("bg-ui-code-bg-base relative p-4", className), ...props },
34
34
  React.createElement(Copy, { content: active.code, className: "text-ui-code-icon absolute right-4 top-4" }),
@@ -58,7 +58,7 @@ const Body = ({ className, hideLineNumbers = false, ...props }) => {
58
58
  ...style,
59
59
  background: "transparent",
60
60
  } }, tokens.map((line, i) => (React.createElement("div", { key: i, ...getLineProps({ line }), className: "flex" },
61
- !hideLineNumbers && (React.createElement("span", { className: "text-ui-code-text-subtle" }, i + 1)),
61
+ !active.hideLineNumbers && (React.createElement("span", { className: "text-ui-code-text-subtle" }, i + 1)),
62
62
  React.createElement("div", { className: "pl-4" }, line.map((token, key) => (React.createElement("span", { key: key, ...getTokenProps({ token }) })))))))))))));
63
63
  };
64
64
  const CodeBlock = Object.assign(Root, { Body, Header, Meta });
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../../src/components/code-block/code-block.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAclE,MAAM,gBAAgB,GAAG,aAAa,CAAiB,IAAI,CAAC,CAAA;AAE5D,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAE5C,IAAI,OAAO,KAAK,IAAI;QAClB,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAA;IAEH,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAMD,MAAM,IAAI,GAAG,CAAC,EACZ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACyC,EAAE,EAAE;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAEjD,OAAO,CACL,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;QAC/D,6BACE,SAAS,EAAE,GAAG,CACZ,yDAAyD,EACzD,SAAS,CACV,KACG,KAAK,IAER,QAAQ,CACL,CACoB,CAC7B,CAAA;AACH,CAAC,CAAA;AAMD,MAAM,eAAe,GAAG,CAAC,EACvB,QAAQ,EACR,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,GAAG,KAAK,EAC2C,EAAE,EAAE;IACvD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAC7D,OAAO,CACL,6BACE,SAAS,EAAE,GAAG,CACZ,yFAAyF,EACzF,SAAS,CACV,KACG,KAAK;QAER,CAAC,UAAU;YACV,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACxB,6BACE,SAAS,EAAE,GAAG,CACZ,gIAAgI,EAChI;oBACE,gFAAgF,EAC9E,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;iBACjC,CACF,EACD,GAAG,EAAE,OAAO,CAAC,KAAK,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAEhC,OAAO,CAAC,KAAK,CACV,CACP,CAAC;QACH,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,EACZ,SAAS,EACT,GAAG,KAAK,EAC6B,EAAE,EAAE;IACzC,OAAO,CACL,6BACE,SAAS,EAAE,GAAG,CAAC,kCAAkC,EAAE,SAAS,CAAC,KACzD,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;AAMvD,MAAM,IAAI,GAAG,CAAC,EACZ,SAAS,EACT,eAAe,GAAG,KAAK,EACvB,GAAG,KAAK,EACyC,EAAE,EAAE;IACrD,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAA;IACxC,OAAO,CACL,6BACE,SAAS,EAAE,GAAG,CAAC,iCAAiC,EAAE,SAAS,CAAC,KACxD,KAAK;QAET,oBAAC,IAAI,IACH,OAAO,EAAE,MAAM,CAAC,IAAI,EACpB,SAAS,EAAC,0CAA0C,GACpD;QACF,6BAAK,SAAS,EAAC,aAAa;YAC1B,oBAAC,SAAS,IACR,KAAK,EAAE;oBACL,GAAG,MAAM,CAAC,SAAS;oBACnB,KAAK,EAAE;wBACL,KAAK,EAAE,wBAAwB;wBAC/B,eAAe,EAAE,SAAS;qBAC3B;oBACD,MAAM,EAAE;wBACN;4BACE,KAAK,EAAE,CAAC,SAAS,CAAC;4BAClB,KAAK,EAAE;gCACL,KAAK,EAAE,oBAAoB;6BAC5B;yBACF;wBACD;4BACE,KAAK,EAAE,CAAC,kBAAkB,CAAC;4BAC3B,KAAK,EAAE;gCACL,KAAK,EAAE,oBAAoB;6BAC5B;yBACF;wBACD,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM;qBAC3B;iBACF,EACD,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAExB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CACnD,6BACE,SAAS,EAAC,gEAAgE,EAC1E,KAAK,EAAE;oBACL,GAAG,KAAK;oBACR,UAAU,EAAE,aAAa;iBAC1B,IAEA,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,6BAAK,GAAG,EAAE,CAAC,KAAM,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,MAAM;gBACtD,CAAC,eAAe,IAAI,CACnB,8BAAM,SAAS,EAAC,0BAA0B,IAAE,CAAC,GAAG,CAAC,CAAQ,CAC1D;gBACD,6BAAK,SAAS,EAAC,MAAM,IAClB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,8BAAM,GAAG,EAAE,GAAG,KAAM,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,GAAI,CACjD,CAAC,CACE,CACF,CACP,CAAC,CACE,CACP,CACS,CACR,CACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,CAAA","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 };
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import * as Popover from "@radix-ui/react-popover";
3
+ import * as Portal from "@radix-ui/react-portal";
4
+ import * as React from "react";
5
+ import { Kbd } from "../kbd";
6
+ import { clx } from "../../utils/clx";
7
+ const Root = ({ open = false, onOpenChange, defaultOpen = false, disableAutoFocus = true, children, }) => {
8
+ return (React.createElement(Popover.Root, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen },
9
+ React.createElement(Portal.Root, null,
10
+ React.createElement(Popover.Anchor, { className: clx("fixed bottom-8 left-1/2 h-px w-px -translate-x-1/2") })),
11
+ React.createElement(Popover.Portal, null,
12
+ React.createElement(Popover.Content, { side: "top", sideOffset: 0, onOpenAutoFocus: (e) => {
13
+ if (disableAutoFocus) {
14
+ e.preventDefault();
15
+ }
16
+ }, className: clx("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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") }, children))));
17
+ };
18
+ Root.displayName = "CommandBar";
19
+ const Value = React.forwardRef(({ className, ...props }, ref) => {
20
+ return (React.createElement("div", { ref: ref, className: clx("txt-compact-small-plus text-ui-fg-subtle px-3 py-2.5", className), ...props }));
21
+ });
22
+ Value.displayName = "CommandBar.Value";
23
+ const Bar = React.forwardRef(({ className, ...props }, ref) => {
24
+ return (React.createElement("div", { ref: ref, className: clx("relatove bg-ui-bg-base flex items-center overflow-hidden rounded-full px-1", "after:shadow-elevation-modal after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:content-['']", className), ...props }));
25
+ });
26
+ Bar.displayName = "CommandBar.Bar";
27
+ const Seperator = React.forwardRef(({ className, ...props }, ref) => {
28
+ return (React.createElement("div", { ref: ref, className: clx("bg-ui-border-base h-10 w-px", className), ...props }));
29
+ });
30
+ Seperator.displayName = "CommandBar.Seperator";
31
+ const Command = React.forwardRef(({ className, type = "button", label, action, shortcut, disabled, ...props }, ref) => {
32
+ React.useEffect(() => {
33
+ const handleKeyDown = (event) => {
34
+ if (event.key === shortcut) {
35
+ event.preventDefault();
36
+ event.stopPropagation();
37
+ action();
38
+ }
39
+ };
40
+ if (!disabled) {
41
+ document.addEventListener("keydown", handleKeyDown);
42
+ }
43
+ return () => {
44
+ document.removeEventListener("keydown", handleKeyDown);
45
+ };
46
+ }, [action, shortcut, disabled]);
47
+ return (React.createElement("button", { ref: ref, className: clx("bg-ui-bg-base txt-compact-small-plus transition-fg text-ui-fg-base flex items-center gap-x-2 px-3 py-2.5 outline-none", "focus:bg-ui-bg-highlight focus:hover:bg-ui-bg-base-hover hover:bg-ui-bg-base-hover active:bg-ui-bg-base-pressed focus:active:bg-ui-bg-base-pressed disabled:!bg-ui-bg-disabled disabled:!text-ui-fg-disabled", "last-of-type:-mr-1 last-of-type:pr-4", className), type: type, onClick: action, ...props },
48
+ React.createElement("span", null, label),
49
+ React.createElement(Kbd, null, shortcut.toUpperCase())));
50
+ });
51
+ Command.displayName = "CommandBar.Command";
52
+ const CommandBar = Object.assign(Root, {
53
+ Command,
54
+ Value,
55
+ Bar,
56
+ Seperator,
57
+ });
58
+ export { CommandBar };
59
+ //# sourceMappingURL=command-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-bar.js","sourceRoot":"","sources":["../../../../src/components/command-bar/command-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as Popover from \"@radix-ui/react-popover\"\nimport * as Portal from \"@radix-ui/react-portal\"\nimport * as React from \"react\"\n\nimport { Kbd } from \"@/components/kbd\"\nimport { clx } from \"@/utils/clx\"\n\ntype CommandBarProps = React.PropsWithChildren<{\n open?: boolean\n onOpenChange?: (open: boolean) => void\n defaultOpen?: boolean\n disableAutoFocus?: boolean\n}>\n\nconst Root = ({\n open = false,\n onOpenChange,\n defaultOpen = false,\n disableAutoFocus = true,\n children,\n}: CommandBarProps) => {\n return (\n <Popover.Root\n open={open}\n onOpenChange={onOpenChange}\n defaultOpen={defaultOpen}\n >\n <Portal.Root>\n <Popover.Anchor\n className={clx(\"fixed bottom-8 left-1/2 h-px w-px -translate-x-1/2\")}\n />\n </Portal.Root>\n <Popover.Portal>\n <Popover.Content\n side=\"top\"\n sideOffset={0}\n onOpenAutoFocus={(e) => {\n if (disableAutoFocus) {\n e.preventDefault()\n }\n }}\n className={clx(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 )}\n >\n {children}\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\nRoot.displayName = \"CommandBar\"\n\nconst Value = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"txt-compact-small-plus text-ui-fg-subtle px-3 py-2.5\",\n className\n )}\n {...props}\n />\n )\n})\nValue.displayName = \"CommandBar.Value\"\n\nconst Bar = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"relatove bg-ui-bg-base flex items-center overflow-hidden rounded-full px-1\",\n \"after:shadow-elevation-modal after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:content-['']\",\n className\n )}\n {...props}\n />\n )\n})\nBar.displayName = \"CommandBar.Bar\"\n\nconst Seperator = React.forwardRef<\n HTMLDivElement,\n Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\"bg-ui-border-base h-10 w-px\", className)}\n {...props}\n />\n )\n})\nSeperator.displayName = \"CommandBar.Seperator\"\n\ninterface CommandProps\n extends Omit<\n React.ComponentPropsWithoutRef<\"button\">,\n \"children\" | \"onClick\"\n > {\n action: () => void | Promise<void>\n label: string\n shortcut: string\n}\n\nconst Command = React.forwardRef<HTMLButtonElement, CommandProps>(\n (\n { className, type = \"button\", label, action, shortcut, disabled, ...props },\n ref\n ) => {\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === shortcut) {\n event.preventDefault()\n event.stopPropagation()\n action()\n }\n }\n\n if (!disabled) {\n document.addEventListener(\"keydown\", handleKeyDown)\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n }\n }, [action, shortcut, disabled])\n\n return (\n <button\n ref={ref}\n className={clx(\n \"bg-ui-bg-base txt-compact-small-plus transition-fg text-ui-fg-base flex items-center gap-x-2 px-3 py-2.5 outline-none\",\n \"focus:bg-ui-bg-highlight focus:hover:bg-ui-bg-base-hover hover:bg-ui-bg-base-hover active:bg-ui-bg-base-pressed focus:active:bg-ui-bg-base-pressed disabled:!bg-ui-bg-disabled disabled:!text-ui-fg-disabled\",\n \"last-of-type:-mr-1 last-of-type:pr-4\",\n className\n )}\n type={type}\n onClick={action}\n {...props}\n >\n <span>{label}</span>\n <Kbd>{shortcut.toUpperCase()}</Kbd>\n </button>\n )\n }\n)\nCommand.displayName = \"CommandBar.Command\"\n\nconst CommandBar = Object.assign(Root, {\n Command,\n Value,\n Bar,\n Seperator,\n})\n\nexport { CommandBar }\n"]}
@@ -0,0 +1 @@
1
+ export * from "./command-bar";
@@ -0,0 +1,2 @@
1
+ export * from "./command-bar";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/command-bar/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA","sourcesContent":["export * from \"./command-bar\"\n"]}
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const Container: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2
+ declare const Container: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
3
3
  export { Container };
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/components/container/container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACjC,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,GAAG,CACZ,2EAA2E,EAC3E,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AACF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,CAAA","sourcesContent":["import * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst Container = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"shadow-elevation-card-rest bg-ui-bg-base w-full rounded-lg px-8 pb-8 pt-6\",\n className\n )}\n {...props}\n />\n )\n})\nContainer.displayName = \"Container\"\n\nexport { Container }\n"]}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/components/container/container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACjC,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,GAAG,CACZ,2EAA2E,EAC3E,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AACF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,CAAA","sourcesContent":["import * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst Container = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"shadow-elevation-card-rest bg-ui-bg-base w-full rounded-lg px-8 pb-8 pt-6\",\n className\n )}\n {...props}\n />\n )\n})\nContainer.displayName = \"Container\"\n\nexport { Container }\n"]}
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import Primitive from "react-currency-input-field";
3
+ import { VariantProps } from "class-variance-authority";
4
+ declare const currencyInputVariants: (props?: ({
5
+ size?: "base" | "small" | null | undefined;
6
+ } & ({
7
+ class: import("clsx").ClassValue;
8
+ className?: undefined;
9
+ } | {
10
+ class?: undefined;
11
+ className: import("clsx").ClassValue;
12
+ } | {
13
+ class?: undefined;
14
+ className?: undefined;
15
+ })) | undefined) => string;
16
+ interface CurrencyInputProps extends Omit<React.ComponentPropsWithoutRef<typeof Primitive>, "prefix" | "suffix" | "size">, VariantProps<typeof currencyInputVariants> {
17
+ symbol: string;
18
+ code: string;
19
+ }
20
+ declare const CurrencyInput: React.ForwardRefExoticComponent<CurrencyInputProps & React.RefAttributes<HTMLInputElement>>;
21
+ export { CurrencyInput };
@@ -0,0 +1,50 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import Primitive from "react-currency-input-field";
4
+ import { Text } from "../text";
5
+ import { clx } from "../../utils/clx";
6
+ import { cva } from "class-variance-authority";
7
+ const currencyInputVariants = cva(clx("flex items-center gap-x-1", "bg-ui-bg-field hover:bg-ui-bg-field-hover border-ui-border-base shadow-buttons-neutral placeholder-ui-fg-muted text-ui-fg-base transition-fg relative w-full rounded-md border", "focus-within:border-ui-border-interactive focus-within:shadow-borders-active"), {
8
+ variants: {
9
+ size: {
10
+ base: "txt-compact-medium h-10 px-3",
11
+ small: "txt-compact-small h-8 px-2",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ size: "base",
16
+ },
17
+ });
18
+ const CurrencyInput = React.forwardRef(({ size = "base", symbol, code, disabled, onInvalid, className, ...props }, ref) => {
19
+ const innerRef = React.useRef(null);
20
+ React.useImperativeHandle(ref, () => innerRef.current);
21
+ const [valid, setValid] = React.useState(true);
22
+ const onInnerInvalid = React.useCallback((event) => {
23
+ setValid(event.currentTarget.validity.valid);
24
+ if (onInvalid) {
25
+ onInvalid(event);
26
+ }
27
+ }, [onInvalid]);
28
+ return (React.createElement("div", { onClick: () => {
29
+ if (innerRef.current) {
30
+ innerRef.current.focus();
31
+ }
32
+ }, className: clx("w-full cursor-text justify-between overflow-hidden", currencyInputVariants({ size }), {
33
+ "text-ui-fg-disabled !bg-ui-bg-disabled !border-ui-border-base placeholder-ui-fg-disabled cursor-not-allowed !shadow-none": disabled,
34
+ "border-ui-border-error focus-within:!shadow-borders-error invalid:focus:!shadow-borders-error": props["aria-invalid"] || !valid,
35
+ }, className) },
36
+ React.createElement("span", { className: clx("w-fit", {
37
+ "py-[9px]": size === "base",
38
+ "py-[5px]": size === "small",
39
+ }), role: "presentation" },
40
+ React.createElement(Text, { className: "text-ui-fg-muted pointer-events-none select-none uppercase" }, code)),
41
+ React.createElement(Primitive, { className: "h-full min-w-0 flex-1 appearance-none bg-transparent text-right outline-none", disabled: disabled, onInvalid: onInnerInvalid, ref: innerRef, ...props }),
42
+ React.createElement("span", { className: clx("w-fit min-w-[16px] text-right", {
43
+ "py-[9px]": size === "base",
44
+ "py-[5px]": size === "small",
45
+ }), role: "presentation" },
46
+ React.createElement(Text, { className: "text-ui-fg-muted pointer-events-none select-none" }, symbol))));
47
+ });
48
+ CurrencyInput.displayName = "CurrencyInput";
49
+ export { CurrencyInput };
50
+ //# sourceMappingURL=currency-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency-input.js","sourceRoot":"","sources":["../../../../src/components/currency-input/currency-input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAgB,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,qBAAqB,GAAG,GAAG,CAC/B,GAAG,CACD,2BAA2B,EAC3B,gLAAgL,EAChL,8EAA8E,CAC/E,EACD;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,IAAI,EAAE,8BAA8B;YACpC,KAAK,EAAE,4BAA4B;SACpC;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,MAAM;KACb;CACF,CACF,CAAA;AAYD,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CACpC,CACE,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EACzE,GAAG,EACH,EAAE;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAA;IAErD,KAAK,CAAC,mBAAmB,CACvB,GAAG,EACH,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CACvB,CAAA;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE9C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CACtC,CAAC,KAAwC,EAAE,EAAE;QAC3C,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE5C,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,KAAK,CAAC,CAAA;SACjB;IACH,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,OAAO,CACL,6BACE,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACpB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;aACzB;QACH,CAAC,EACD,SAAS,EAAE,GAAG,CACZ,oDAAoD,EACpD,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,EAC/B;YACE,0HAA0H,EACxH,QAAQ;YACV,+FAA+F,EAC7F,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK;SAClC,EACD,SAAS,CACV;QAED,8BACE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE;gBACtB,UAAU,EAAE,IAAI,KAAK,MAAM;gBAC3B,UAAU,EAAE,IAAI,KAAK,OAAO;aAC7B,CAAC,EACF,IAAI,EAAC,cAAc;YAEnB,oBAAC,IAAI,IAAC,SAAS,EAAC,4DAA4D,IACzE,IAAI,CACA,CACF;QACP,oBAAC,SAAS,IACR,SAAS,EAAC,8EAA8E,EACxF,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,QAAQ,KACT,KAAK,GACT;QACF,8BACE,SAAS,EAAE,GAAG,CAAC,+BAA+B,EAAE;gBAC9C,UAAU,EAAE,IAAI,KAAK,MAAM;gBAC3B,UAAU,EAAE,IAAI,KAAK,OAAO;aAC7B,CAAC,EACF,IAAI,EAAC,cAAc;YAEnB,oBAAC,IAAI,IAAC,SAAS,EAAC,kDAAkD,IAC/D,MAAM,CACF,CACF,CACH,CACP,CAAA;AACH,CAAC,CACF,CAAA;AACD,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport Primitive from \"react-currency-input-field\"\n\nimport { Text } from \"@/components/text\"\nimport { clx } from \"@/utils/clx\"\nimport { VariantProps, cva } from \"class-variance-authority\"\n\nconst currencyInputVariants = cva(\n clx(\n \"flex items-center gap-x-1\",\n \"bg-ui-bg-field hover:bg-ui-bg-field-hover border-ui-border-base shadow-buttons-neutral placeholder-ui-fg-muted text-ui-fg-base transition-fg relative w-full rounded-md border\",\n \"focus-within:border-ui-border-interactive focus-within:shadow-borders-active\"\n ),\n {\n variants: {\n size: {\n base: \"txt-compact-medium h-10 px-3\",\n small: \"txt-compact-small h-8 px-2\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n }\n)\n\ninterface CurrencyInputProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive>,\n \"prefix\" | \"suffix\" | \"size\"\n >,\n VariantProps<typeof currencyInputVariants> {\n symbol: string\n code: string\n}\n\nconst CurrencyInput = React.forwardRef<HTMLInputElement, CurrencyInputProps>(\n (\n { size = \"base\", symbol, code, disabled, onInvalid, className, ...props },\n ref\n ) => {\n const innerRef = React.useRef<HTMLInputElement>(null)\n\n React.useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n ref,\n () => innerRef.current\n )\n\n const [valid, setValid] = React.useState(true)\n\n const onInnerInvalid = React.useCallback(\n (event: React.FormEvent<HTMLInputElement>) => {\n setValid(event.currentTarget.validity.valid)\n\n if (onInvalid) {\n onInvalid(event)\n }\n },\n [onInvalid]\n )\n\n return (\n <div\n onClick={() => {\n if (innerRef.current) {\n innerRef.current.focus()\n }\n }}\n className={clx(\n \"w-full cursor-text justify-between overflow-hidden\",\n currencyInputVariants({ size }),\n {\n \"text-ui-fg-disabled !bg-ui-bg-disabled !border-ui-border-base placeholder-ui-fg-disabled cursor-not-allowed !shadow-none\":\n disabled,\n \"border-ui-border-error focus-within:!shadow-borders-error invalid:focus:!shadow-borders-error\":\n props[\"aria-invalid\"] || !valid,\n },\n className\n )}\n >\n <span\n className={clx(\"w-fit\", {\n \"py-[9px]\": size === \"base\",\n \"py-[5px]\": size === \"small\",\n })}\n role=\"presentation\"\n >\n <Text className=\"text-ui-fg-muted pointer-events-none select-none uppercase\">\n {code}\n </Text>\n </span>\n <Primitive\n className=\"h-full min-w-0 flex-1 appearance-none bg-transparent text-right outline-none\"\n disabled={disabled}\n onInvalid={onInnerInvalid}\n ref={innerRef}\n {...props}\n />\n <span\n className={clx(\"w-fit min-w-[16px] text-right\", {\n \"py-[9px]\": size === \"base\",\n \"py-[5px]\": size === \"small\",\n })}\n role=\"presentation\"\n >\n <Text className=\"text-ui-fg-muted pointer-events-none select-none\">\n {symbol}\n </Text>\n </span>\n </div>\n )\n }\n)\nCurrencyInput.displayName = \"CurrencyInput\"\n\nexport { CurrencyInput }\n"]}
@@ -0,0 +1 @@
1
+ export * from "./currency-input";
@@ -0,0 +1,2 @@
1
+ export * from "./currency-input";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/currency-input/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA","sourcesContent":["export * from \"./currency-input\"\n"]}
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import type { DateRange } from "react-day-picker";
2
+ import type { DateRange } from "../../types";
3
3
  interface Preset {
4
4
  label: string;
5
5
  }
@@ -5,7 +5,7 @@ import * as Primitives from "@radix-ui/react-popover";
5
5
  import { format } from "date-fns";
6
6
  import * as React from "react";
7
7
  import { Button } from "../button";
8
- import { Calendar } from "../calendar";
8
+ import { Calendar as CalendarPrimitive } from "../calendar";
9
9
  import { TimeInput } from "../time-input";
10
10
  import { clx } from "../../utils/clx";
11
11
  import { isBrowserLocaleClockType24h } from "../../utils/is-browser-locale-hour-cycle-24h";
@@ -24,12 +24,13 @@ const displayVariants = cva(clx("text-ui-fg-base bg-ui-bg-field border-ui-border
24
24
  const Display = React.forwardRef(({ className, children, placeholder, size = "base", ...props }, ref) => {
25
25
  return (React.createElement(Primitives.Trigger, { asChild: true },
26
26
  React.createElement("button", { ref: ref, className: clx(displayVariants({ size }), className), ...props },
27
- React.createElement(CalendarIcon, { className: "text-ui-fg-muted h-5 w-5" }),
28
- React.createElement("span", { className: "w-full overflow-hidden text-ellipsis whitespace-nowrap text-left" }, children ? (children) : placeholder ? (React.createElement("span", { className: "text-ui-fg-muted" }, placeholder)) : null))));
27
+ React.createElement(CalendarIcon, { className: "text-ui-fg-muted" }),
28
+ React.createElement("span", { className: "flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-left" }, children ? (children) : placeholder ? (React.createElement("span", { className: "text-ui-fg-muted" }, placeholder)) : null))));
29
29
  });
30
30
  Display.displayName = "DatePicker.Display";
31
31
  const Flyout = React.forwardRef(({ className, children, ...props }, ref) => {
32
- return (React.createElement(Primitives.Content, { ref: ref, sideOffset: 8, align: "center", className: clx("txt-compact-small shadow-elevation-flyout bg-ui-bg-base z-30 rounded-lg", "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", "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", className), ...props }, children));
32
+ return (React.createElement(Primitives.Portal, null,
33
+ React.createElement(Primitives.Content, { ref: ref, sideOffset: 8, align: "center", className: clx("txt-compact-small shadow-elevation-flyout bg-ui-bg-base w-fit rounded-lg", "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", "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", className), ...props }, children)));
33
34
  });
34
35
  Flyout.displayName = "DatePicker.Flyout";
35
36
  const PresetContainer = ({ presets, onSelect, currentValue, }) => {
@@ -116,6 +117,13 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
116
117
  return date;
117
118
  // eslint-disable-next-line react-hooks/exhaustive-deps
118
119
  }, [open]);
120
+ /**
121
+ * Update the date when the value changes.
122
+ */
123
+ React.useEffect(() => {
124
+ var _a;
125
+ setDate((_a = value !== null && value !== void 0 ? value : defaultValue) !== null && _a !== void 0 ? _a : undefined);
126
+ }, [value, defaultValue]);
119
127
  React.useEffect(() => {
120
128
  if (date) {
121
129
  setMonth(date);
@@ -160,7 +168,7 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
160
168
  React.createElement("div", { className: "absolute inset-0 overflow-y-scroll p-3" },
161
169
  React.createElement(PresetContainer, { currentValue: date, presets: presets, onSelect: handleDateChange })))),
162
170
  React.createElement("div", null,
163
- React.createElement(Calendar, { mode: "single", month: month, onMonthChange: setMonth, selected: date, onSelect: handleDateChange, disabled: disabled, ...props }),
171
+ React.createElement(CalendarPrimitive, { mode: "single", month: month, onMonthChange: setMonth, selected: date, onSelect: handleDateChange, disabled: disabled, ...props }),
164
172
  showTimePicker && (React.createElement("div", { className: "border-ui-border-base border-t p-3" },
165
173
  React.createElement(TimeInput, { "aria-label": "Time", onChange: handleTimeChange, isDisabled: !date, value: time, isRequired: props.required }))),
166
174
  React.createElement("div", { className: "border-ui-border-base flex items-center gap-x-2 border-t p-3" },
@@ -187,6 +195,13 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
187
195
  return range;
188
196
  // eslint-disable-next-line react-hooks/exhaustive-deps
189
197
  }, [open]);
198
+ /**
199
+ * Update the range when the value changes.
200
+ */
201
+ React.useEffect(() => {
202
+ var _a;
203
+ setRange((_a = value !== null && value !== void 0 ? value : defaultValue) !== null && _a !== void 0 ? _a : undefined);
204
+ }, [value, defaultValue]);
190
205
  React.useEffect(() => {
191
206
  if (range) {
192
207
  setMonth(range.from);
@@ -244,31 +259,30 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
244
259
  return (React.createElement(Primitives.Root, { open: open, onOpenChange: setOpen },
245
260
  React.createElement(Display, { placeholder: "Pick a date", disabled: disabled, className: className, "aria-required": props.required || props["aria-required"], "aria-invalid": props["aria-invalid"], "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], size: size }, displayRange),
246
261
  React.createElement(Flyout, null,
247
- React.createElement("div", { className: "flex" },
248
- React.createElement("div", { className: "flex items-start" },
249
- presets && presets.length > 0 && (React.createElement("div", { className: "relative h-full w-[160px] border-r" },
250
- React.createElement("div", { className: "absolute inset-0 overflow-y-scroll p-3" },
251
- React.createElement(PresetContainer, { currentValue: range, presets: presets, onSelect: handleRangeChange })))),
252
- React.createElement("div", null,
253
- React.createElement(Calendar, { mode: "range", selected: range, onSelect: handleRangeChange, month: month, onMonthChange: setMonth, numberOfMonths: 2, disabled: disabled, classNames: {
254
- months: "flex flex-col sm:flex-row divide-y sm:divide-y-0 sm:divide-x divide-ui-border-base",
255
- }, ...props }),
256
- showTimePicker && (React.createElement("div", { className: "border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3" },
257
- React.createElement("div", { className: "flex flex-1 items-center gap-x-2" },
258
- React.createElement("span", { className: "text-ui-fg-subtle" }, "Start:"),
259
- React.createElement(TimeInput, { value: time.start, onChange: (v) => handleTimeChange(v, "start"), "aria-label": "Start date time", isDisabled: !(range === null || range === void 0 ? void 0 : range.from), isRequired: props.required })),
260
- React.createElement(Minus, { className: "text-ui-fg-muted" }),
261
- React.createElement("div", { className: "flex flex-1 items-center gap-x-2" },
262
- React.createElement("span", { className: "text-ui-fg-subtle" }, "End:"),
263
- React.createElement(TimeInput, { value: time.end, onChange: (v) => handleTimeChange(v, "end"), "aria-label": "End date time", isDisabled: !(range === null || range === void 0 ? void 0 : range.to), isRequired: props.required })))),
264
- React.createElement("div", { className: "flex items-center justify-between border-t p-3" },
265
- React.createElement("p", { className: clx("text-ui-fg-subtle txt-compact-small-plus") },
266
- React.createElement("span", { className: "text-ui-fg-muted" }, "Range:"),
267
- " ",
268
- displayRange),
269
- React.createElement("div", { className: "flex items-center gap-x-2" },
270
- React.createElement(Button, { variant: "secondary", type: "button", onClick: handleCancel }, "Cancel"),
271
- React.createElement(Button, { variant: "primary", type: "button", onClick: () => setOpen(false) }, "Apply")))))))));
262
+ React.createElement("div", { className: "flex items-start" },
263
+ presets && presets.length > 0 && (React.createElement("div", { className: "relative h-full w-[160px] border-r" },
264
+ React.createElement("div", { className: "absolute inset-0 overflow-y-scroll p-3" },
265
+ React.createElement(PresetContainer, { currentValue: range, presets: presets, onSelect: handleRangeChange })))),
266
+ React.createElement("div", null,
267
+ React.createElement(CalendarPrimitive, { mode: "range", selected: range, onSelect: handleRangeChange, month: month, onMonthChange: setMonth, numberOfMonths: 2, disabled: disabled, classNames: {
268
+ months: "flex flex-row divide-x divide-ui-border-base",
269
+ }, ...props }),
270
+ showTimePicker && (React.createElement("div", { className: "border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3" },
271
+ React.createElement("div", { className: "flex flex-1 items-center gap-x-2" },
272
+ React.createElement("span", { className: "text-ui-fg-subtle" }, "Start:"),
273
+ React.createElement(TimeInput, { value: time.start, onChange: (v) => handleTimeChange(v, "start"), "aria-label": "Start date time", isDisabled: !(range === null || range === void 0 ? void 0 : range.from), isRequired: props.required })),
274
+ React.createElement(Minus, { className: "text-ui-fg-muted" }),
275
+ React.createElement("div", { className: "flex flex-1 items-center gap-x-2" },
276
+ React.createElement("span", { className: "text-ui-fg-subtle" }, "End:"),
277
+ React.createElement(TimeInput, { value: time.end, onChange: (v) => handleTimeChange(v, "end"), "aria-label": "End date time", isDisabled: !(range === null || range === void 0 ? void 0 : range.to), isRequired: props.required })))),
278
+ React.createElement("div", { className: "flex items-center justify-between border-t p-3" },
279
+ React.createElement("p", { className: clx("text-ui-fg-subtle txt-compact-small-plus") },
280
+ React.createElement("span", { className: "text-ui-fg-muted" }, "Range:"),
281
+ " ",
282
+ displayRange),
283
+ React.createElement("div", { className: "flex items-center gap-x-2" },
284
+ React.createElement(Button, { variant: "secondary", type: "button", onClick: handleCancel }, "Cancel"),
285
+ React.createElement(Button, { variant: "primary", type: "button", onClick: () => setOpen(false) }, "Apply"))))))));
272
286
  };
273
287
  const validatePresets = (presets, rules) => {
274
288
  const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules;