notra-editor 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/components/blockquote-button/blockquote-button.cjs +5 -3
  2. package/dist/components/blockquote-button/blockquote-button.cjs.map +1 -1
  3. package/dist/components/blockquote-button/blockquote-button.mjs +5 -3
  4. package/dist/components/blockquote-button/blockquote-button.mjs.map +1 -1
  5. package/dist/components/code-block-button/code-block-button.cjs +5 -3
  6. package/dist/components/code-block-button/code-block-button.cjs.map +1 -1
  7. package/dist/components/code-block-button/code-block-button.mjs +5 -3
  8. package/dist/components/code-block-button/code-block-button.mjs.map +1 -1
  9. package/dist/components/code-block-view/code-block-shell.cjs +4 -2
  10. package/dist/components/code-block-view/code-block-shell.cjs.map +1 -1
  11. package/dist/components/code-block-view/code-block-shell.mjs +3 -2
  12. package/dist/components/code-block-view/code-block-shell.mjs.map +1 -1
  13. package/dist/components/code-block-view/code-block-view.cjs +6 -4
  14. package/dist/components/code-block-view/code-block-view.cjs.map +1 -1
  15. package/dist/components/code-block-view/code-block-view.mjs +6 -4
  16. package/dist/components/code-block-view/code-block-view.mjs.map +1 -1
  17. package/dist/components/code-block-view/language-select.cjs +9 -7
  18. package/dist/components/code-block-view/language-select.cjs.map +1 -1
  19. package/dist/components/code-block-view/language-select.mjs +9 -7
  20. package/dist/components/code-block-view/language-select.mjs.map +1 -1
  21. package/dist/components/copy-button.cjs +6 -4
  22. package/dist/components/copy-button.cjs.map +1 -1
  23. package/dist/components/copy-button.mjs +6 -4
  24. package/dist/components/copy-button.mjs.map +1 -1
  25. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs +8 -6
  26. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs.map +1 -1
  27. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs +8 -6
  28. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs.map +1 -1
  29. package/dist/components/heading-dropdown-menu/heading-menu-item.cjs +6 -4
  30. package/dist/components/heading-dropdown-menu/heading-menu-item.cjs.map +1 -1
  31. package/dist/components/heading-dropdown-menu/heading-menu-item.mjs +5 -4
  32. package/dist/components/heading-dropdown-menu/heading-menu-item.mjs.map +1 -1
  33. package/dist/components/heading-dropdown-menu/use-heading.cjs +4 -2
  34. package/dist/components/heading-dropdown-menu/use-heading.cjs.map +1 -1
  35. package/dist/components/heading-dropdown-menu/use-heading.mjs +3 -2
  36. package/dist/components/heading-dropdown-menu/use-heading.mjs.map +1 -1
  37. package/dist/components/image-popover/image-input-form.cjs +127 -0
  38. package/dist/components/image-popover/image-input-form.cjs.map +1 -0
  39. package/dist/components/image-popover/image-input-form.d.cts +16 -0
  40. package/dist/components/image-popover/image-input-form.d.ts +16 -0
  41. package/dist/components/image-popover/image-input-form.mjs +103 -0
  42. package/dist/components/image-popover/image-input-form.mjs.map +1 -0
  43. package/dist/components/image-popover/image-popover.cjs +35 -92
  44. package/dist/components/image-popover/image-popover.cjs.map +1 -1
  45. package/dist/components/image-popover/image-popover.mjs +36 -93
  46. package/dist/components/image-popover/image-popover.mjs.map +1 -1
  47. package/dist/components/image-popover/use-image-popover.cjs +2 -0
  48. package/dist/components/image-popover/use-image-popover.cjs.map +1 -1
  49. package/dist/components/image-popover/use-image-popover.mjs +1 -0
  50. package/dist/components/image-popover/use-image-popover.mjs.map +1 -1
  51. package/dist/components/link-popover/link-popover.cjs +10 -8
  52. package/dist/components/link-popover/link-popover.cjs.map +1 -1
  53. package/dist/components/link-popover/link-popover.mjs +10 -8
  54. package/dist/components/link-popover/link-popover.mjs.map +1 -1
  55. package/dist/components/link-popover/use-link-popover.cjs +2 -0
  56. package/dist/components/link-popover/use-link-popover.cjs.map +1 -1
  57. package/dist/components/link-popover/use-link-popover.mjs +1 -0
  58. package/dist/components/link-popover/use-link-popover.mjs.map +1 -1
  59. package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs +8 -6
  60. package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs.map +1 -1
  61. package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs +8 -6
  62. package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs.map +1 -1
  63. package/dist/components/list-dropdown-menu/list-menu-item.cjs +6 -4
  64. package/dist/components/list-dropdown-menu/list-menu-item.cjs.map +1 -1
  65. package/dist/components/list-dropdown-menu/list-menu-item.mjs +5 -4
  66. package/dist/components/list-dropdown-menu/list-menu-item.mjs.map +1 -1
  67. package/dist/components/list-dropdown-menu/use-list.cjs +5 -3
  68. package/dist/components/list-dropdown-menu/use-list.cjs.map +1 -1
  69. package/dist/components/list-dropdown-menu/use-list.mjs +4 -3
  70. package/dist/components/list-dropdown-menu/use-list.mjs.map +1 -1
  71. package/dist/components/mark-button/mark-button.cjs +6 -4
  72. package/dist/components/mark-button/mark-button.cjs.map +1 -1
  73. package/dist/components/mark-button/mark-button.mjs +6 -4
  74. package/dist/components/mark-button/mark-button.mjs.map +1 -1
  75. package/dist/components/mark-button/use-mark.cjs +4 -2
  76. package/dist/components/mark-button/use-mark.cjs.map +1 -1
  77. package/dist/components/mark-button/use-mark.mjs +3 -2
  78. package/dist/components/mark-button/use-mark.mjs.map +1 -1
  79. package/dist/components/slash-dropdown-menu/slash-dropdown-menu.cjs +151 -0
  80. package/dist/components/slash-dropdown-menu/slash-dropdown-menu.cjs.map +1 -0
  81. package/dist/components/slash-dropdown-menu/slash-dropdown-menu.d.cts +9 -0
  82. package/dist/components/slash-dropdown-menu/slash-dropdown-menu.d.ts +9 -0
  83. package/dist/components/slash-dropdown-menu/slash-dropdown-menu.mjs +127 -0
  84. package/dist/components/slash-dropdown-menu/slash-dropdown-menu.mjs.map +1 -0
  85. package/dist/components/slash-dropdown-menu/slash-image-popover.cjs +80 -0
  86. package/dist/components/slash-dropdown-menu/slash-image-popover.cjs.map +1 -0
  87. package/dist/components/slash-dropdown-menu/slash-image-popover.d.cts +11 -0
  88. package/dist/components/slash-dropdown-menu/slash-image-popover.d.ts +11 -0
  89. package/dist/components/slash-dropdown-menu/slash-image-popover.mjs +56 -0
  90. package/dist/components/slash-dropdown-menu/slash-image-popover.mjs.map +1 -0
  91. package/dist/components/slash-dropdown-menu/use-slash-items.cjs +138 -0
  92. package/dist/components/slash-dropdown-menu/use-slash-items.cjs.map +1 -0
  93. package/dist/components/slash-dropdown-menu/use-slash-items.d.cts +11 -0
  94. package/dist/components/slash-dropdown-menu/use-slash-items.d.ts +11 -0
  95. package/dist/components/slash-dropdown-menu/use-slash-items.mjs +125 -0
  96. package/dist/components/slash-dropdown-menu/use-slash-items.mjs.map +1 -0
  97. package/dist/components/suggestion-menu/filter-suggestion-items.cjs +57 -0
  98. package/dist/components/suggestion-menu/filter-suggestion-items.cjs.map +1 -0
  99. package/dist/components/suggestion-menu/filter-suggestion-items.d.cts +6 -0
  100. package/dist/components/suggestion-menu/filter-suggestion-items.d.ts +6 -0
  101. package/dist/components/suggestion-menu/filter-suggestion-items.mjs +32 -0
  102. package/dist/components/suggestion-menu/filter-suggestion-items.mjs.map +1 -0
  103. package/dist/components/suggestion-menu/suggestion-menu-types.cjs +19 -0
  104. package/dist/components/suggestion-menu/suggestion-menu-types.cjs.map +1 -0
  105. package/dist/components/suggestion-menu/suggestion-menu-types.d.cts +22 -0
  106. package/dist/components/suggestion-menu/suggestion-menu-types.d.ts +22 -0
  107. package/dist/components/suggestion-menu/suggestion-menu-types.mjs +1 -0
  108. package/dist/components/suggestion-menu/suggestion-menu-types.mjs.map +1 -0
  109. package/dist/components/suggestion-menu/suggestion-menu.cjs +205 -0
  110. package/dist/components/suggestion-menu/suggestion-menu.cjs.map +1 -0
  111. package/dist/components/suggestion-menu/suggestion-menu.d.cts +27 -0
  112. package/dist/components/suggestion-menu/suggestion-menu.d.ts +27 -0
  113. package/dist/components/suggestion-menu/suggestion-menu.mjs +181 -0
  114. package/dist/components/suggestion-menu/suggestion-menu.mjs.map +1 -0
  115. package/dist/components/toolbar/toolbar.cjs +4 -2
  116. package/dist/components/toolbar/toolbar.cjs.map +1 -1
  117. package/dist/components/toolbar/toolbar.mjs +3 -2
  118. package/dist/components/toolbar/toolbar.mjs.map +1 -1
  119. package/dist/components/ui/button.cjs +5 -3
  120. package/dist/components/ui/button.cjs.map +1 -1
  121. package/dist/components/ui/button.mjs +4 -3
  122. package/dist/components/ui/button.mjs.map +1 -1
  123. package/dist/components/ui/command.cjs +6 -5
  124. package/dist/components/ui/command.cjs.map +1 -1
  125. package/dist/components/ui/command.mjs +5 -5
  126. package/dist/components/ui/command.mjs.map +1 -1
  127. package/dist/components/ui/dialog.cjs +5 -4
  128. package/dist/components/ui/dialog.cjs.map +1 -1
  129. package/dist/components/ui/dialog.mjs +4 -4
  130. package/dist/components/ui/dialog.mjs.map +1 -1
  131. package/dist/components/ui/dropdown-menu.cjs +4 -3
  132. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  133. package/dist/components/ui/dropdown-menu.mjs +3 -3
  134. package/dist/components/ui/dropdown-menu.mjs.map +1 -1
  135. package/dist/components/ui/input-group.cjs +9 -7
  136. package/dist/components/ui/input-group.cjs.map +1 -1
  137. package/dist/components/ui/input-group.d.cts +1 -1
  138. package/dist/components/ui/input-group.d.ts +1 -1
  139. package/dist/components/ui/input-group.mjs +9 -7
  140. package/dist/components/ui/input-group.mjs.map +1 -1
  141. package/dist/components/ui/input.cjs +3 -1
  142. package/dist/components/ui/input.cjs.map +1 -1
  143. package/dist/components/ui/input.mjs +2 -1
  144. package/dist/components/ui/input.mjs.map +1 -1
  145. package/dist/components/ui/popover.cjs +4 -3
  146. package/dist/components/ui/popover.cjs.map +1 -1
  147. package/dist/components/ui/popover.mjs +3 -3
  148. package/dist/components/ui/popover.mjs.map +1 -1
  149. package/dist/components/ui/separator.cjs +4 -3
  150. package/dist/components/ui/separator.cjs.map +1 -1
  151. package/dist/components/ui/separator.mjs +3 -3
  152. package/dist/components/ui/separator.mjs.map +1 -1
  153. package/dist/components/ui/spacer.cjs +2 -0
  154. package/dist/components/ui/spacer.cjs.map +1 -1
  155. package/dist/components/ui/spacer.mjs +1 -0
  156. package/dist/components/ui/spacer.mjs.map +1 -1
  157. package/dist/components/ui/textarea.cjs +3 -1
  158. package/dist/components/ui/textarea.cjs.map +1 -1
  159. package/dist/components/ui/textarea.mjs +2 -1
  160. package/dist/components/ui/textarea.mjs.map +1 -1
  161. package/dist/components/undo-redo-button/undo-redo-button.cjs +6 -4
  162. package/dist/components/undo-redo-button/undo-redo-button.cjs.map +1 -1
  163. package/dist/components/undo-redo-button/undo-redo-button.mjs +6 -4
  164. package/dist/components/undo-redo-button/undo-redo-button.mjs.map +1 -1
  165. package/dist/components/undo-redo-button/use-undo-redo.cjs +4 -2
  166. package/dist/components/undo-redo-button/use-undo-redo.cjs.map +1 -1
  167. package/dist/components/undo-redo-button/use-undo-redo.mjs +3 -2
  168. package/dist/components/undo-redo-button/use-undo-redo.mjs.map +1 -1
  169. package/dist/extensions/code-block.cjs +8 -6
  170. package/dist/extensions/code-block.cjs.map +1 -1
  171. package/dist/extensions/code-block.mjs +7 -6
  172. package/dist/extensions/code-block.mjs.map +1 -1
  173. package/dist/extensions/editor.cjs +5 -3
  174. package/dist/extensions/editor.cjs.map +1 -1
  175. package/dist/extensions/editor.mjs +4 -3
  176. package/dist/extensions/editor.mjs.map +1 -1
  177. package/dist/extensions/index.cjs +4 -2
  178. package/dist/extensions/index.cjs.map +1 -1
  179. package/dist/extensions/index.mjs +3 -2
  180. package/dist/extensions/index.mjs.map +1 -1
  181. package/dist/extensions/shared.cjs +5 -3
  182. package/dist/extensions/shared.cjs.map +1 -1
  183. package/dist/extensions/shared.mjs +4 -3
  184. package/dist/extensions/shared.mjs.map +1 -1
  185. package/dist/hooks/use-copy-to-clipboard.cjs +3 -2
  186. package/dist/hooks/use-copy-to-clipboard.cjs.map +1 -1
  187. package/dist/hooks/use-copy-to-clipboard.mjs +2 -2
  188. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -1
  189. package/dist/hooks/use-floating-element.cjs +55 -0
  190. package/dist/hooks/use-floating-element.cjs.map +1 -0
  191. package/dist/hooks/use-floating-element.d.cts +21 -0
  192. package/dist/hooks/use-floating-element.d.ts +21 -0
  193. package/dist/hooks/use-floating-element.mjs +35 -0
  194. package/dist/hooks/use-floating-element.mjs.map +1 -0
  195. package/dist/hooks/use-markdown-editor.cjs +6 -1
  196. package/dist/hooks/use-markdown-editor.cjs.map +1 -1
  197. package/dist/hooks/use-markdown-editor.d.cts +1 -1
  198. package/dist/hooks/use-markdown-editor.d.ts +1 -1
  199. package/dist/hooks/use-markdown-editor.mjs +5 -1
  200. package/dist/hooks/use-markdown-editor.mjs.map +1 -1
  201. package/dist/index.cjs +18 -16
  202. package/dist/index.cjs.map +1 -1
  203. package/dist/index.mjs +17 -16
  204. package/dist/index.mjs.map +1 -1
  205. package/dist/lib/highlight-code-to-html.cjs +2 -0
  206. package/dist/lib/highlight-code-to-html.cjs.map +1 -1
  207. package/dist/lib/highlight-code-to-html.mjs +1 -0
  208. package/dist/lib/highlight-code-to-html.mjs.map +1 -1
  209. package/dist/lib/languages.cjs +4 -2
  210. package/dist/lib/languages.cjs.map +1 -1
  211. package/dist/lib/languages.mjs +3 -2
  212. package/dist/lib/languages.mjs.map +1 -1
  213. package/dist/lib/utils.cjs +2 -0
  214. package/dist/lib/utils.cjs.map +1 -1
  215. package/dist/lib/utils.mjs +1 -0
  216. package/dist/lib/utils.mjs.map +1 -1
  217. package/dist/notra-editor.cjs +17 -13
  218. package/dist/notra-editor.cjs.map +1 -1
  219. package/dist/notra-editor.mjs +17 -13
  220. package/dist/notra-editor.mjs.map +1 -1
  221. package/dist/notra-reader.cjs +9 -7
  222. package/dist/notra-reader.cjs.map +1 -1
  223. package/dist/notra-reader.mjs +8 -7
  224. package/dist/notra-reader.mjs.map +1 -1
  225. package/dist/styles/globals.css +6 -0
  226. package/dist/themes/default/editor.css +50 -0
  227. package/dist/utils/markdown-to-json.cjs +5 -3
  228. package/dist/utils/markdown-to-json.cjs.map +1 -1
  229. package/dist/utils/markdown-to-json.mjs +4 -3
  230. package/dist/utils/markdown-to-json.mjs.map +1 -1
  231. package/package.json +4 -1
@@ -6,7 +6,7 @@ import { Button } from './button.js';
6
6
 
7
7
  declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
8
8
  declare const inputGroupAddonVariants: (props?: ({
9
- align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
9
+ align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
10
10
  } & class_variance_authority_types.ClassProp) | undefined) => string;
11
11
  declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): react_jsx_runtime.JSX.Element;
12
12
  declare const inputGroupButtonVariants: (props?: ({
@@ -1,10 +1,12 @@
1
1
  "use client";
2
- import { jsx } from "react/jsx-runtime";
2
+
3
+ // src/components/ui/input-group.tsx
3
4
  import { cva } from "class-variance-authority";
4
- import { Button } from "./button";
5
- import { Input } from "./input";
6
- import { Textarea } from "./textarea";
7
- import { cn } from "../../lib/utils";
5
+ import { Button } from "./button.mjs";
6
+ import { Input } from "./input.mjs";
7
+ import { Textarea } from "./textarea.mjs";
8
+ import { cn } from "../../lib/utils.mjs";
9
+ import { jsx } from "react/jsx-runtime";
8
10
  function InputGroup({ className, ...props }) {
9
11
  return /* @__PURE__ */ jsx(
10
12
  "div",
@@ -19,7 +21,7 @@ function InputGroup({ className, ...props }) {
19
21
  }
20
22
  );
21
23
  }
22
- const inputGroupAddonVariants = cva(
24
+ var inputGroupAddonVariants = cva(
23
25
  "nt:flex nt:h-auto nt:cursor-text nt:items-center nt:justify-center nt:gap-2 nt:py-1.5 nt:text-sm nt:font-medium nt:text-muted-foreground nt:select-none nt:group-data-[disabled=true]/input-group:opacity-50 nt:[&>kbd]:rounded-[calc(var(--radius)-5px)] nt:[&>svg:not([class*=size-])]:size-4",
24
26
  {
25
27
  variants: {
@@ -57,7 +59,7 @@ function InputGroupAddon({
57
59
  }
58
60
  );
59
61
  }
60
- const inputGroupButtonVariants = cva(
62
+ var inputGroupButtonVariants = cva(
61
63
  "nt:flex nt:items-center nt:gap-2 nt:text-sm nt:shadow-none",
62
64
  {
63
65
  variants: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/input-group.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Textarea } from './textarea';\nimport { cn } from '../../lib/utils';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'nt:group/input-group nt:relative nt:flex nt:h-8 nt:w-full nt:min-w-0 nt:items-center nt:rounded-lg nt:border nt:border-input nt:transition-colors nt:outline-none nt:in-data-[slot=combobox-content]:focus-within:border-inherit nt:in-data-[slot=combobox-content]:focus-within:ring-0 nt:has-disabled:bg-input/50 nt:has-disabled:opacity-50 nt:has-[[data-slot=input-group-control]:focus-visible]:border-ring nt:has-[[data-slot=input-group-control]:focus-visible]:ring-3 nt:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 nt:has-[[data-slot][aria-invalid=true]]:border-destructive nt:has-[[data-slot][aria-invalid=true]]:ring-3 nt:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 nt:has-[>[data-align=block-end]]:h-auto nt:has-[>[data-align=block-end]]:flex-col nt:has-[>[data-align=block-start]]:h-auto nt:has-[>[data-align=block-start]]:flex-col nt:has-[>textarea]:h-auto nt:dark:bg-input/30 nt:dark:has-disabled:bg-input/80 nt:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 nt:has-[>[data-align=block-end]]:[&>input]:pt-3 nt:has-[>[data-align=block-start]]:[&>input]:pb-3 nt:has-[>[data-align=inline-end]]:[&>input]:pr-1.5 nt:has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input-group\"\n\t\t\trole=\"group\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst inputGroupAddonVariants = cva(\n\t'nt:flex nt:h-auto nt:cursor-text nt:items-center nt:justify-center nt:gap-2 nt:py-1.5 nt:text-sm nt:font-medium nt:text-muted-foreground nt:select-none nt:group-data-[disabled=true]/input-group:opacity-50 nt:[&>kbd]:rounded-[calc(var(--radius)-5px)] nt:[&>svg:not([class*=size-])]:size-4',\n\t{\n\t\tvariants: {\n\t\t\talign: {\n\t\t\t\t'inline-start':\n\t\t\t\t\t'nt:order-first nt:pl-2 nt:has-[>button]:ml-[-0.3rem] nt:has-[>kbd]:ml-[-0.15rem]',\n\t\t\t\t'inline-end':\n\t\t\t\t\t'nt:order-last nt:pr-2 nt:has-[>button]:mr-[-0.3rem] nt:has-[>kbd]:mr-[-0.15rem]',\n\t\t\t\t'block-start':\n\t\t\t\t\t'nt:order-first nt:w-full nt:justify-start nt:px-2.5 nt:pt-2 nt:group-has-[>input]/input-group:pt-2 nt:[.border-b]:pb-2',\n\t\t\t\t'block-end':\n\t\t\t\t\t'nt:order-last nt:w-full nt:justify-start nt:px-2.5 nt:pb-2 nt:group-has-[>input]/input-group:pb-2 nt:[.border-t]:pt-2'\n\t\t\t}\n\t\t},\n\t\tdefaultVariants: {\n\t\t\talign: 'inline-start'\n\t\t}\n\t}\n);\n\nfunction InputGroupAddon({\n\tclassName,\n\talign = 'inline-start',\n\t...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(inputGroupAddonVariants({ align }), className)}\n\t\t\tdata-align={align}\n\t\t\tdata-slot=\"input-group-addon\"\n\t\t\trole=\"group\"\n\t\t\tonClick={(e) => {\n\t\t\t\tif ((e.target as HTMLElement).closest('button')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\te.currentTarget.parentElement?.querySelector('input')?.focus();\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst inputGroupButtonVariants = cva(\n\t'nt:flex nt:items-center nt:gap-2 nt:text-sm nt:shadow-none',\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\txs: 'nt:h-6 nt:gap-1 nt:rounded-[calc(var(--radius)-3px)] nt:px-1.5 nt:[&>svg:not([class*=size-])]:size-3.5',\n\t\t\t\tsm: 'nt:',\n\t\t\t\t'icon-xs':\n\t\t\t\t\t'nt:size-6 nt:rounded-[calc(var(--radius)-3px)] nt:p-0 nt:has-[>svg]:p-0',\n\t\t\t\t'icon-sm': 'nt:size-8 nt:p-0 nt:has-[>svg]:p-0'\n\t\t\t}\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: 'xs'\n\t\t}\n\t}\n);\n\nfunction InputGroupButton({\n\tclassName,\n\ttype = 'button',\n\tvariant = 'ghost',\n\tsize = 'xs',\n\t...props\n}: Omit<React.ComponentProps<typeof Button>, 'size'> &\n\tVariantProps<typeof inputGroupButtonVariants>) {\n\treturn (\n\t\t<Button\n\t\t\tclassName={cn(inputGroupButtonVariants({ size }), className)}\n\t\t\tdata-size={size}\n\t\t\ttype={type}\n\t\t\tvariant={variant}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex nt:items-center nt:gap-2 nt:text-sm nt:text-muted-foreground nt:[&_svg]:pointer-events-none nt:[&_svg:not([class*=size-])]:size-4',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<'input'>) {\n\treturn (\n\t\t<Input\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex-1 nt:rounded-none nt:border-0 nt:bg-transparent nt:shadow-none nt:ring-0 nt:focus-visible:ring-0 nt:disabled:bg-transparent nt:aria-invalid:ring-0 nt:dark:bg-transparent nt:dark:disabled:bg-transparent',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupTextarea({\n\tclassName,\n\t...props\n}: React.ComponentProps<'textarea'>) {\n\treturn (\n\t\t<Textarea\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex-1 nt:resize-none nt:rounded-none nt:border-0 nt:bg-transparent nt:py-2 nt:shadow-none nt:ring-0 nt:focus-visible:ring-0 nt:disabled:bg-transparent nt:aria-invalid:ring-0 nt:dark:bg-transparent nt:dark:disabled:bg-transparent',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tInputGroup,\n\tInputGroupAddon,\n\tInputGroupButton,\n\tInputGroupText,\n\tInputGroupInput,\n\tInputGroupTextarea\n};\n"],"mappings":";AAYE;AAVF,SAAS,WAA8B;AAGvC,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,UAAU;AAEnB,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACzE,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV,MAAK;AAAA,MACJ,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,MAAM,0BAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,OAAO;AAAA,QACN,gBACC;AAAA,QACD,cACC;AAAA,QACD,eACC;AAAA,QACD,aACC;AAAA,MACF;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,OAAO;AAAA,IACR;AAAA,EACD;AACD;AAEA,SAAS,gBAAgB;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,EACR,GAAG;AACJ,GAA+E;AAC9E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,wBAAwB,EAAE,MAAM,CAAC,GAAG,SAAS;AAAA,MAC3D,cAAY;AAAA,MACZ,aAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS,CAAC,MAAM;AACf,YAAK,EAAE,OAAuB,QAAQ,QAAQ,GAAG;AAChD;AAAA,QACD;AAEA,UAAE,cAAc,eAAe,cAAc,OAAO,GAAG,MAAM;AAAA,MAC9D;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,MAAM,2BAA2B;AAAA,EAChC;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,MAAM;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,WACC;AAAA,QACD,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,MAAM;AAAA,IACP;AAAA,EACD;AACD;AAEA,SAAS,iBAAiB;AAAA,EACzB;AAAA,EACA,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACJ,GACgD;AAC/C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,yBAAyB,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAC3D,aAAW;AAAA,MACX;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,MAAM,GAAiC;AAC9E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,gBAAgB;AAAA,EACxB;AAAA,EACA,GAAG;AACJ,GAAkC;AACjC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA,GAAG;AACJ,GAAqC;AACpC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/input-group.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { Button } from './button.js';\nimport { Input } from './input.js';\nimport { Textarea } from './textarea.js';\nimport { cn } from '../../lib/utils.js';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'nt:group/input-group nt:relative nt:flex nt:h-8 nt:w-full nt:min-w-0 nt:items-center nt:rounded-lg nt:border nt:border-input nt:transition-colors nt:outline-none nt:in-data-[slot=combobox-content]:focus-within:border-inherit nt:in-data-[slot=combobox-content]:focus-within:ring-0 nt:has-disabled:bg-input/50 nt:has-disabled:opacity-50 nt:has-[[data-slot=input-group-control]:focus-visible]:border-ring nt:has-[[data-slot=input-group-control]:focus-visible]:ring-3 nt:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 nt:has-[[data-slot][aria-invalid=true]]:border-destructive nt:has-[[data-slot][aria-invalid=true]]:ring-3 nt:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 nt:has-[>[data-align=block-end]]:h-auto nt:has-[>[data-align=block-end]]:flex-col nt:has-[>[data-align=block-start]]:h-auto nt:has-[>[data-align=block-start]]:flex-col nt:has-[>textarea]:h-auto nt:dark:bg-input/30 nt:dark:has-disabled:bg-input/80 nt:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 nt:has-[>[data-align=block-end]]:[&>input]:pt-3 nt:has-[>[data-align=block-start]]:[&>input]:pb-3 nt:has-[>[data-align=inline-end]]:[&>input]:pr-1.5 nt:has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input-group\"\n\t\t\trole=\"group\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst inputGroupAddonVariants = cva(\n\t'nt:flex nt:h-auto nt:cursor-text nt:items-center nt:justify-center nt:gap-2 nt:py-1.5 nt:text-sm nt:font-medium nt:text-muted-foreground nt:select-none nt:group-data-[disabled=true]/input-group:opacity-50 nt:[&>kbd]:rounded-[calc(var(--radius)-5px)] nt:[&>svg:not([class*=size-])]:size-4',\n\t{\n\t\tvariants: {\n\t\t\talign: {\n\t\t\t\t'inline-start':\n\t\t\t\t\t'nt:order-first nt:pl-2 nt:has-[>button]:ml-[-0.3rem] nt:has-[>kbd]:ml-[-0.15rem]',\n\t\t\t\t'inline-end':\n\t\t\t\t\t'nt:order-last nt:pr-2 nt:has-[>button]:mr-[-0.3rem] nt:has-[>kbd]:mr-[-0.15rem]',\n\t\t\t\t'block-start':\n\t\t\t\t\t'nt:order-first nt:w-full nt:justify-start nt:px-2.5 nt:pt-2 nt:group-has-[>input]/input-group:pt-2 nt:[.border-b]:pb-2',\n\t\t\t\t'block-end':\n\t\t\t\t\t'nt:order-last nt:w-full nt:justify-start nt:px-2.5 nt:pb-2 nt:group-has-[>input]/input-group:pb-2 nt:[.border-t]:pt-2'\n\t\t\t}\n\t\t},\n\t\tdefaultVariants: {\n\t\t\talign: 'inline-start'\n\t\t}\n\t}\n);\n\nfunction InputGroupAddon({\n\tclassName,\n\talign = 'inline-start',\n\t...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(inputGroupAddonVariants({ align }), className)}\n\t\t\tdata-align={align}\n\t\t\tdata-slot=\"input-group-addon\"\n\t\t\trole=\"group\"\n\t\t\tonClick={(e) => {\n\t\t\t\tif ((e.target as HTMLElement).closest('button')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\te.currentTarget.parentElement?.querySelector('input')?.focus();\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst inputGroupButtonVariants = cva(\n\t'nt:flex nt:items-center nt:gap-2 nt:text-sm nt:shadow-none',\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\txs: 'nt:h-6 nt:gap-1 nt:rounded-[calc(var(--radius)-3px)] nt:px-1.5 nt:[&>svg:not([class*=size-])]:size-3.5',\n\t\t\t\tsm: 'nt:',\n\t\t\t\t'icon-xs':\n\t\t\t\t\t'nt:size-6 nt:rounded-[calc(var(--radius)-3px)] nt:p-0 nt:has-[>svg]:p-0',\n\t\t\t\t'icon-sm': 'nt:size-8 nt:p-0 nt:has-[>svg]:p-0'\n\t\t\t}\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: 'xs'\n\t\t}\n\t}\n);\n\nfunction InputGroupButton({\n\tclassName,\n\ttype = 'button',\n\tvariant = 'ghost',\n\tsize = 'xs',\n\t...props\n}: Omit<React.ComponentProps<typeof Button>, 'size'> &\n\tVariantProps<typeof inputGroupButtonVariants>) {\n\treturn (\n\t\t<Button\n\t\t\tclassName={cn(inputGroupButtonVariants({ size }), className)}\n\t\t\tdata-size={size}\n\t\t\ttype={type}\n\t\t\tvariant={variant}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex nt:items-center nt:gap-2 nt:text-sm nt:text-muted-foreground nt:[&_svg]:pointer-events-none nt:[&_svg:not([class*=size-])]:size-4',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<'input'>) {\n\treturn (\n\t\t<Input\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex-1 nt:rounded-none nt:border-0 nt:bg-transparent nt:shadow-none nt:ring-0 nt:focus-visible:ring-0 nt:disabled:bg-transparent nt:aria-invalid:ring-0 nt:dark:bg-transparent nt:dark:disabled:bg-transparent',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupTextarea({\n\tclassName,\n\t...props\n}: React.ComponentProps<'textarea'>) {\n\treturn (\n\t\t<Textarea\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex-1 nt:resize-none nt:rounded-none nt:border-0 nt:bg-transparent nt:py-2 nt:shadow-none nt:ring-0 nt:focus-visible:ring-0 nt:disabled:bg-transparent nt:aria-invalid:ring-0 nt:dark:bg-transparent nt:dark:disabled:bg-transparent',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tInputGroup,\n\tInputGroupAddon,\n\tInputGroupButton,\n\tInputGroupText,\n\tInputGroupInput,\n\tInputGroupTextarea\n};\n"],"mappings":";;;AAEA,SAAS,WAA8B;AAGvC,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,UAAU;AAIjB;AAFF,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACzE,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV,MAAK;AAAA,MACJ,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,IAAM,0BAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,OAAO;AAAA,QACN,gBACC;AAAA,QACD,cACC;AAAA,QACD,eACC;AAAA,QACD,aACC;AAAA,MACF;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,OAAO;AAAA,IACR;AAAA,EACD;AACD;AAEA,SAAS,gBAAgB;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,EACR,GAAG;AACJ,GAA+E;AAC9E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,wBAAwB,EAAE,MAAM,CAAC,GAAG,SAAS;AAAA,MAC3D,cAAY;AAAA,MACZ,aAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS,CAAC,MAAM;AACf,YAAK,EAAE,OAAuB,QAAQ,QAAQ,GAAG;AAChD;AAAA,QACD;AAEA,UAAE,cAAc,eAAe,cAAc,OAAO,GAAG,MAAM;AAAA,MAC9D;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,IAAM,2BAA2B;AAAA,EAChC;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,MAAM;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,WACC;AAAA,QACD,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,MAAM;AAAA,IACP;AAAA,EACD;AACD;AAEA,SAAS,iBAAiB;AAAA,EACzB;AAAA,EACA,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACJ,GACgD;AAC/C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,yBAAyB,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAC3D,aAAW;AAAA,MACX;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,MAAM,GAAiC;AAC9E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,gBAAgB;AAAA,EACxB;AAAA,EACA,GAAG;AACJ,GAAkC;AACjC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA,GAAG;AACJ,GAAqC;AACpC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -16,13 +16,15 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/input.tsx
19
21
  var input_exports = {};
20
22
  __export(input_exports, {
21
23
  Input: () => Input
22
24
  });
23
25
  module.exports = __toCommonJS(input_exports);
26
+ var import_utils = require("../../lib/utils.cjs");
24
27
  var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_utils = require("../../lib/utils");
26
28
  function Input({ className, type, ...props }) {
27
29
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
28
30
  "input",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n\treturn (\n\t\t<input\n\t\t\tclassName={cn(\n\t\t\t\t'nt:h-8 nt:w-full nt:min-w-0 nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-1 nt:text-base nt:transition-colors nt:outline-none nt:file:inline-flex nt:file:h-6 nt:file:border-0 nt:file:bg-transparent nt:file:text-sm nt:file:font-medium nt:file:text-foreground nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:pointer-events-none nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input\"\n\t\t\ttype={type}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Input };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAJF,mBAAmB;AAEnB,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,GAAkC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n\treturn (\n\t\t<input\n\t\t\tclassName={cn(\n\t\t\t\t'nt:h-8 nt:w-full nt:min-w-0 nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-1 nt:text-base nt:transition-colors nt:outline-none nt:file:inline-flex nt:file:h-6 nt:file:border-0 nt:file:bg-transparent nt:file:text-sm nt:file:font-medium nt:file:text-foreground nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:pointer-events-none nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input\"\n\t\t\ttype={type}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Input };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAmB;AAIjB;AAFF,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,GAAkC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -1,5 +1,6 @@
1
+ // src/components/ui/input.tsx
2
+ import { cn } from "../../lib/utils.mjs";
1
3
  import { jsx } from "react/jsx-runtime";
2
- import { cn } from "../../lib/utils";
3
4
  function Input({ className, type, ...props }) {
4
5
  return /* @__PURE__ */ jsx(
5
6
  "input",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n\treturn (\n\t\t<input\n\t\t\tclassName={cn(\n\t\t\t\t'nt:h-8 nt:w-full nt:min-w-0 nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-1 nt:text-base nt:transition-colors nt:outline-none nt:file:inline-flex nt:file:h-6 nt:file:border-0 nt:file:bg-transparent nt:file:text-sm nt:file:font-medium nt:file:text-foreground nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:pointer-events-none nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input\"\n\t\t\ttype={type}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Input };\n"],"mappings":"AAME;AAJF,SAAS,UAAU;AAEnB,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,GAAkC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n\treturn (\n\t\t<input\n\t\t\tclassName={cn(\n\t\t\t\t'nt:h-8 nt:w-full nt:min-w-0 nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-1 nt:text-base nt:transition-colors nt:outline-none nt:file:inline-flex nt:file:h-6 nt:file:border-0 nt:file:bg-transparent nt:file:text-sm nt:file:font-medium nt:file:text-foreground nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:pointer-events-none nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"input\"\n\t\t\ttype={type}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Input };\n"],"mappings":";AAEA,SAAS,UAAU;AAIjB;AAFF,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,GAAkC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- "use client";
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -17,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/popover.tsx
20
21
  var popover_exports = {};
21
22
  __export(popover_exports, {
22
23
  Popover: () => Popover,
@@ -28,9 +29,9 @@ __export(popover_exports, {
28
29
  PopoverTrigger: () => PopoverTrigger
29
30
  });
30
31
  module.exports = __toCommonJS(popover_exports);
31
- var import_jsx_runtime = require("react/jsx-runtime");
32
32
  var import_radix_ui = require("radix-ui");
33
- var import_utils = require("../../lib/utils");
33
+ var import_utils = require("../../lib/utils.cjs");
34
+ var import_jsx_runtime = require("react/jsx-runtime");
34
35
  function Popover({
35
36
  ...props
36
37
  }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/popover.tsx"],"sourcesContent":["'use client';\n\nimport { Popover as PopoverPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Popover({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n\treturn <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n\treturn <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n\tclassName,\n\talign = 'center',\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n\treturn (\n\t\t<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\talign={align}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'nt:z-50 nt:flex nt:w-72 nt:origin-(--radix-popover-content-transform-origin) nt:flex-col nt:gap-2.5 nt:rounded-lg nt:bg-popover nt:p-2.5 nt:text-sm nt:text-popover-foreground nt:shadow-md nt:ring-1 nt:ring-foreground/10 nt:outline-hidden nt:duration-100 nt:data-[side=bottom]:slide-in-from-top-2 nt:data-[side=left]:slide-in-from-right-2 nt:data-[side=right]:slide-in-from-left-2 nt:data-[side=top]:slide-in-from-bottom-2 nt:data-open:animate-in nt:data-open:fade-in-0 nt:data-open:zoom-in-95 nt:data-closed:animate-out nt:data-closed:fade-out-0 nt:data-closed:zoom-out-95',\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>\n\t);\n}\n\nfunction PopoverAnchor({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n\treturn <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:flex nt:flex-col nt:gap-0.5 nt:text-sm', className)}\n\t\t\tdata-slot=\"popover-header\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<'h2'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:font-medium', className)}\n\t\t\tdata-slot=\"popover-title\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<'p'>) {\n\treturn (\n\t\t<p\n\t\t\tclassName={cn('nt:text-muted-foreground', className)}\n\t\t\tdata-slot=\"popover-description\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tPopover,\n\tPopoverAnchor,\n\tPopoverContent,\n\tPopoverDescription,\n\tPopoverHeader,\n\tPopoverTitle,\n\tPopoverTrigger\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUQ;AARR,sBAA4C;AAG5C,mBAAmB;AAEnB,SAAS,QAAQ;AAAA,EAChB,GAAG;AACJ,GAAuD;AACtD,SAAO,4CAAC,gBAAAA,QAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC9D;AAEA,SAAS,eAAe;AAAA,EACvB,GAAG;AACJ,GAA0D;AACzD,SAAO,4CAAC,gBAAAA,QAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AACzE;AAEA,SAAS,eAAe;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACJ,GAA0D;AACzD,SACC,4CAAC,gBAAAA,QAAiB,QAAjB,EACA;AAAA,IAAC,gBAAAA,QAAiB;AAAA,IAAjB;AAAA,MACA;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL,GACD;AAEF;AAEA,SAAS,cAAc;AAAA,EACtB,GAAG;AACJ,GAAyD;AACxD,SAAO,4CAAC,gBAAAA,QAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACvE;AAEA,SAAS,cAAc,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW,iBAAG,6CAA6C,SAAS;AAAA,MACpE,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC1E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW,iBAAG,kBAAkB,SAAS;AAAA,MACzC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA,GAAG;AACJ,GAA8B;AAC7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW,iBAAG,4BAA4B,SAAS;AAAA,MACnD,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":["PopoverPrimitive"]}
1
+ {"version":3,"sources":["../../../src/components/ui/popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Popover({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n\treturn <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n\treturn <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n\tclassName,\n\talign = 'center',\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n\treturn (\n\t\t<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\talign={align}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'nt:z-50 nt:flex nt:w-72 nt:origin-(--radix-popover-content-transform-origin) nt:flex-col nt:gap-2.5 nt:rounded-lg nt:bg-popover nt:p-2.5 nt:text-sm nt:text-popover-foreground nt:shadow-md nt:ring-1 nt:ring-foreground/10 nt:outline-hidden nt:duration-100 nt:data-[side=bottom]:slide-in-from-top-2 nt:data-[side=left]:slide-in-from-right-2 nt:data-[side=right]:slide-in-from-left-2 nt:data-[side=top]:slide-in-from-bottom-2 nt:data-open:animate-in nt:data-open:fade-in-0 nt:data-open:zoom-in-95 nt:data-closed:animate-out nt:data-closed:fade-out-0 nt:data-closed:zoom-out-95',\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>\n\t);\n}\n\nfunction PopoverAnchor({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n\treturn <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:flex nt:flex-col nt:gap-0.5 nt:text-sm', className)}\n\t\t\tdata-slot=\"popover-header\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<'h2'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:font-medium', className)}\n\t\t\tdata-slot=\"popover-title\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<'p'>) {\n\treturn (\n\t\t<p\n\t\t\tclassName={cn('nt:text-muted-foreground', className)}\n\t\t\tdata-slot=\"popover-description\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tPopover,\n\tPopoverAnchor,\n\tPopoverContent,\n\tPopoverDescription,\n\tPopoverHeader,\n\tPopoverTitle,\n\tPopoverTrigger\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA4C;AAG5C,mBAAmB;AAKX;AAHR,SAAS,QAAQ;AAAA,EAChB,GAAG;AACJ,GAAuD;AACtD,SAAO,4CAAC,gBAAAA,QAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC9D;AAEA,SAAS,eAAe;AAAA,EACvB,GAAG;AACJ,GAA0D;AACzD,SAAO,4CAAC,gBAAAA,QAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AACzE;AAEA,SAAS,eAAe;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACJ,GAA0D;AACzD,SACC,4CAAC,gBAAAA,QAAiB,QAAjB,EACA;AAAA,IAAC,gBAAAA,QAAiB;AAAA,IAAjB;AAAA,MACA;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL,GACD;AAEF;AAEA,SAAS,cAAc;AAAA,EACtB,GAAG;AACJ,GAAyD;AACxD,SAAO,4CAAC,gBAAAA,QAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACvE;AAEA,SAAS,cAAc,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW,iBAAG,6CAA6C,SAAS;AAAA,MACpE,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC1E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW,iBAAG,kBAAkB,SAAS;AAAA,MACzC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA,GAAG;AACJ,GAA8B;AAC7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW,iBAAG,4BAA4B,SAAS;AAAA,MACnD,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":["PopoverPrimitive"]}
@@ -1,7 +1,7 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
1
+ // src/components/ui/popover.tsx
3
2
  import { Popover as PopoverPrimitive } from "radix-ui";
4
- import { cn } from "../../lib/utils";
3
+ import { cn } from "../../lib/utils.mjs";
4
+ import { jsx } from "react/jsx-runtime";
5
5
  function Popover({
6
6
  ...props
7
7
  }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/popover.tsx"],"sourcesContent":["'use client';\n\nimport { Popover as PopoverPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Popover({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n\treturn <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n\treturn <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n\tclassName,\n\talign = 'center',\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n\treturn (\n\t\t<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\talign={align}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'nt:z-50 nt:flex nt:w-72 nt:origin-(--radix-popover-content-transform-origin) nt:flex-col nt:gap-2.5 nt:rounded-lg nt:bg-popover nt:p-2.5 nt:text-sm nt:text-popover-foreground nt:shadow-md nt:ring-1 nt:ring-foreground/10 nt:outline-hidden nt:duration-100 nt:data-[side=bottom]:slide-in-from-top-2 nt:data-[side=left]:slide-in-from-right-2 nt:data-[side=right]:slide-in-from-left-2 nt:data-[side=top]:slide-in-from-bottom-2 nt:data-open:animate-in nt:data-open:fade-in-0 nt:data-open:zoom-in-95 nt:data-closed:animate-out nt:data-closed:fade-out-0 nt:data-closed:zoom-out-95',\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>\n\t);\n}\n\nfunction PopoverAnchor({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n\treturn <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:flex nt:flex-col nt:gap-0.5 nt:text-sm', className)}\n\t\t\tdata-slot=\"popover-header\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<'h2'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:font-medium', className)}\n\t\t\tdata-slot=\"popover-title\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<'p'>) {\n\treturn (\n\t\t<p\n\t\t\tclassName={cn('nt:text-muted-foreground', className)}\n\t\t\tdata-slot=\"popover-description\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tPopover,\n\tPopoverAnchor,\n\tPopoverContent,\n\tPopoverDescription,\n\tPopoverHeader,\n\tPopoverTitle,\n\tPopoverTrigger\n};\n"],"mappings":";AAUQ;AARR,SAAS,WAAW,wBAAwB;AAG5C,SAAS,UAAU;AAEnB,SAAS,QAAQ;AAAA,EAChB,GAAG;AACJ,GAAuD;AACtD,SAAO,oBAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC9D;AAEA,SAAS,eAAe;AAAA,EACvB,GAAG;AACJ,GAA0D;AACzD,SAAO,oBAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AACzE;AAEA,SAAS,eAAe;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACJ,GAA0D;AACzD,SACC,oBAAC,iBAAiB,QAAjB,EACA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL,GACD;AAEF;AAEA,SAAS,cAAc;AAAA,EACtB,GAAG;AACJ,GAAyD;AACxD,SAAO,oBAAC,iBAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACvE;AAEA,SAAS,cAAc,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,6CAA6C,SAAS;AAAA,MACpE,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC1E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,kBAAkB,SAAS;AAAA,MACzC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA,GAAG;AACJ,GAA8B;AAC7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,MACnD,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Popover({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n\treturn <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n\treturn <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n\tclassName,\n\talign = 'center',\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n\treturn (\n\t\t<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\talign={align}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'nt:z-50 nt:flex nt:w-72 nt:origin-(--radix-popover-content-transform-origin) nt:flex-col nt:gap-2.5 nt:rounded-lg nt:bg-popover nt:p-2.5 nt:text-sm nt:text-popover-foreground nt:shadow-md nt:ring-1 nt:ring-foreground/10 nt:outline-hidden nt:duration-100 nt:data-[side=bottom]:slide-in-from-top-2 nt:data-[side=left]:slide-in-from-right-2 nt:data-[side=right]:slide-in-from-left-2 nt:data-[side=top]:slide-in-from-bottom-2 nt:data-open:animate-in nt:data-open:fade-in-0 nt:data-open:zoom-in-95 nt:data-closed:animate-out nt:data-closed:fade-out-0 nt:data-closed:zoom-out-95',\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>\n\t);\n}\n\nfunction PopoverAnchor({\n\t...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n\treturn <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:flex nt:flex-col nt:gap-0.5 nt:text-sm', className)}\n\t\t\tdata-slot=\"popover-header\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<'h2'>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('nt:font-medium', className)}\n\t\t\tdata-slot=\"popover-title\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PopoverDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<'p'>) {\n\treturn (\n\t\t<p\n\t\t\tclassName={cn('nt:text-muted-foreground', className)}\n\t\t\tdata-slot=\"popover-description\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tPopover,\n\tPopoverAnchor,\n\tPopoverContent,\n\tPopoverDescription,\n\tPopoverHeader,\n\tPopoverTitle,\n\tPopoverTrigger\n};\n"],"mappings":";AAAA,SAAS,WAAW,wBAAwB;AAG5C,SAAS,UAAU;AAKX;AAHR,SAAS,QAAQ;AAAA,EAChB,GAAG;AACJ,GAAuD;AACtD,SAAO,oBAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC9D;AAEA,SAAS,eAAe;AAAA,EACvB,GAAG;AACJ,GAA0D;AACzD,SAAO,oBAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AACzE;AAEA,SAAS,eAAe;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACJ,GAA0D;AACzD,SACC,oBAAC,iBAAiB,QAAjB,EACA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACL,GACD;AAEF;AAEA,SAAS,cAAc;AAAA,EACtB,GAAG;AACJ,GAAyD;AACxD,SAAO,oBAAC,iBAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACvE;AAEA,SAAS,cAAc,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,6CAA6C,SAAS;AAAA,MACpE,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC1E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,kBAAkB,SAAS;AAAA,MACzC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA,GAAG;AACJ,GAA8B;AAC7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,MACnD,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- "use client";
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -17,14 +16,16 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/separator.tsx
20
21
  var separator_exports = {};
21
22
  __export(separator_exports, {
22
23
  Separator: () => Separator
23
24
  });
24
25
  module.exports = __toCommonJS(separator_exports);
25
- var import_jsx_runtime = require("react/jsx-runtime");
26
26
  var import_radix_ui = require("radix-ui");
27
- var import_utils = require("../../lib/utils");
27
+ var import_utils = require("../../lib/utils.cjs");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
28
29
  function Separator({
29
30
  className,
30
31
  orientation = "horizontal",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/separator.tsx"],"sourcesContent":["'use client';\n\nimport { Separator as SeparatorPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Separator({\n\tclassName,\n\torientation = 'horizontal',\n\tdecorative = true,\n\t...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n\treturn (\n\t\t<SeparatorPrimitive.Root\n\t\t\tclassName={cn(\n\t\t\t\t'nt:shrink-0 nt:bg-border nt:data-horizontal:h-px nt:data-horizontal:w-full nt:data-vertical:w-px nt:data-vertical:self-stretch',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"separator\"\n\t\t\tdecorative={decorative}\n\t\t\torientation={orientation}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Separator };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcE;AAZF,sBAAgD;AAGhD,mBAAmB;AAEnB,SAAS,UAAU;AAAA,EAClB;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACJ,GAAyD;AACxD,SACC;AAAA,IAAC,gBAAAA,UAAmB;AAAA,IAAnB;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":["SeparatorPrimitive"]}
1
+ {"version":3,"sources":["../../../src/components/ui/separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Separator({\n\tclassName,\n\torientation = 'horizontal',\n\tdecorative = true,\n\t...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n\treturn (\n\t\t<SeparatorPrimitive.Root\n\t\t\tclassName={cn(\n\t\t\t\t'nt:shrink-0 nt:bg-border nt:data-horizontal:h-px nt:data-horizontal:w-full nt:data-vertical:w-px nt:data-vertical:self-stretch',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"separator\"\n\t\t\tdecorative={decorative}\n\t\t\torientation={orientation}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Separator };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAgD;AAGhD,mBAAmB;AASjB;AAPF,SAAS,UAAU;AAAA,EAClB;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACJ,GAAyD;AACxD,SACC;AAAA,IAAC,gBAAAA,UAAmB;AAAA,IAAnB;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":["SeparatorPrimitive"]}
@@ -1,7 +1,7 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
1
+ // src/components/ui/separator.tsx
3
2
  import { Separator as SeparatorPrimitive } from "radix-ui";
4
- import { cn } from "../../lib/utils";
3
+ import { cn } from "../../lib/utils.mjs";
4
+ import { jsx } from "react/jsx-runtime";
5
5
  function Separator({
6
6
  className,
7
7
  orientation = "horizontal",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/separator.tsx"],"sourcesContent":["'use client';\n\nimport { Separator as SeparatorPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Separator({\n\tclassName,\n\torientation = 'horizontal',\n\tdecorative = true,\n\t...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n\treturn (\n\t\t<SeparatorPrimitive.Root\n\t\t\tclassName={cn(\n\t\t\t\t'nt:shrink-0 nt:bg-border nt:data-horizontal:h-px nt:data-horizontal:w-full nt:data-vertical:w-px nt:data-vertical:self-stretch',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"separator\"\n\t\t\tdecorative={decorative}\n\t\t\torientation={orientation}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Separator };\n"],"mappings":";AAcE;AAZF,SAAS,aAAa,0BAA0B;AAGhD,SAAS,UAAU;AAEnB,SAAS,UAAU;AAAA,EAClB;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACJ,GAAyD;AACxD,SACC;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Separator({\n\tclassName,\n\torientation = 'horizontal',\n\tdecorative = true,\n\t...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n\treturn (\n\t\t<SeparatorPrimitive.Root\n\t\t\tclassName={cn(\n\t\t\t\t'nt:shrink-0 nt:bg-border nt:data-horizontal:h-px nt:data-horizontal:w-full nt:data-vertical:w-px nt:data-vertical:self-stretch',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"separator\"\n\t\t\tdecorative={decorative}\n\t\t\torientation={orientation}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Separator };\n"],"mappings":";AAAA,SAAS,aAAa,0BAA0B;AAGhD,SAAS,UAAU;AASjB;AAPF,SAAS,UAAU;AAAA,EAClB;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACJ,GAAyD;AACxD,SACC;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -16,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/spacer.tsx
19
21
  var spacer_exports = {};
20
22
  __export(spacer_exports, {
21
23
  Spacer: () => Spacer
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/spacer.tsx"],"sourcesContent":["export function Spacer() {\n\treturn <div style={{ flex: 1 }} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACQ;AADD,SAAS,SAAS;AACxB,SAAO,4CAAC,SAAI,OAAO,EAAE,MAAM,EAAE,GAAG;AACjC;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/spacer.tsx"],"sourcesContent":["export function Spacer() {\n\treturn <div style={{ flex: 1 }} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACQ;AADD,SAAS,SAAS;AACxB,SAAO,4CAAC,SAAI,OAAO,EAAE,MAAM,EAAE,GAAG;AACjC;","names":[]}
@@ -1,3 +1,4 @@
1
+ // src/components/ui/spacer.tsx
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  function Spacer() {
3
4
  return /* @__PURE__ */ jsx("div", { style: { flex: 1 } });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/spacer.tsx"],"sourcesContent":["export function Spacer() {\n\treturn <div style={{ flex: 1 }} />;\n}\n"],"mappings":"AACQ;AADD,SAAS,SAAS;AACxB,SAAO,oBAAC,SAAI,OAAO,EAAE,MAAM,EAAE,GAAG;AACjC;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/spacer.tsx"],"sourcesContent":["export function Spacer() {\n\treturn <div style={{ flex: 1 }} />;\n}\n"],"mappings":";AACQ;AADD,SAAS,SAAS;AACxB,SAAO,oBAAC,SAAI,OAAO,EAAE,MAAM,EAAE,GAAG;AACjC;","names":[]}
@@ -16,13 +16,15 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/textarea.tsx
19
21
  var textarea_exports = {};
20
22
  __export(textarea_exports, {
21
23
  Textarea: () => Textarea
22
24
  });
23
25
  module.exports = __toCommonJS(textarea_exports);
26
+ var import_utils = require("../../lib/utils.cjs");
24
27
  var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_utils = require("../../lib/utils");
26
28
  function Textarea({ className, ...props }) {
27
29
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
28
30
  "textarea",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/textarea.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n\treturn (\n\t\t<textarea\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex nt:field-sizing-content nt:min-h-16 nt:w-full nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-2 nt:text-base nt:transition-colors nt:outline-none nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"textarea\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Textarea };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAJF,mBAAmB;AAEnB,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/textarea.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n\treturn (\n\t\t<textarea\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex nt:field-sizing-content nt:min-h-16 nt:w-full nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-2 nt:text-base nt:transition-colors nt:outline-none nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"textarea\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Textarea };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAmB;AAIjB;AAFF,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -1,5 +1,6 @@
1
+ // src/components/ui/textarea.tsx
2
+ import { cn } from "../../lib/utils.mjs";
1
3
  import { jsx } from "react/jsx-runtime";
2
- import { cn } from "../../lib/utils";
3
4
  function Textarea({ className, ...props }) {
4
5
  return /* @__PURE__ */ jsx(
5
6
  "textarea",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/textarea.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n\treturn (\n\t\t<textarea\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex nt:field-sizing-content nt:min-h-16 nt:w-full nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-2 nt:text-base nt:transition-colors nt:outline-none nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"textarea\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Textarea };\n"],"mappings":"AAME;AAJF,SAAS,UAAU;AAEnB,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ui/textarea.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../../lib/utils.js';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n\treturn (\n\t\t<textarea\n\t\t\tclassName={cn(\n\t\t\t\t'nt:flex nt:field-sizing-content nt:min-h-16 nt:w-full nt:rounded-lg nt:border nt:border-input nt:bg-transparent nt:px-2.5 nt:py-2 nt:text-base nt:transition-colors nt:outline-none nt:placeholder:text-muted-foreground nt:focus-visible:border-ring nt:focus-visible:ring-3 nt:focus-visible:ring-ring/50 nt:disabled:cursor-not-allowed nt:disabled:bg-input/50 nt:disabled:opacity-50 nt:aria-invalid:border-destructive nt:aria-invalid:ring-3 nt:aria-invalid:ring-destructive/20 nt:md:text-sm nt:dark:bg-input/30 nt:dark:disabled:bg-input/80 nt:dark:aria-invalid:border-destructive/50 nt:dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdata-slot=\"textarea\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Textarea };\n"],"mappings":";AAEA,SAAS,UAAU;AAIjB;AAFF,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACA,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -17,16 +17,18 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/components/undo-redo-button/undo-redo-button.tsx
20
22
  var undo_redo_button_exports = {};
21
23
  __export(undo_redo_button_exports, {
22
24
  UndoRedoButton: () => UndoRedoButton
23
25
  });
24
26
  module.exports = __toCommonJS(undo_redo_button_exports);
25
- var import_jsx_runtime = require("react/jsx-runtime");
26
27
  var import_react = require("react");
27
- var import_use_undo_redo = require("./use-undo-redo");
28
- var import_button = require("../ui/button");
29
- const UndoRedoButton = (0, import_react.forwardRef)(({ editor, action, onClick, ...buttonProps }, ref) => {
28
+ var import_use_undo_redo = require("./use-undo-redo.cjs");
29
+ var import_button = require("../ui/button.cjs");
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var UndoRedoButton = (0, import_react.forwardRef)(({ editor, action, onClick, ...buttonProps }, ref) => {
30
32
  const { canExecute, handleAction, label, Icon } = (0, import_use_undo_redo.useUndoRedo)({
31
33
  editor,
32
34
  action
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/undo-redo-button/undo-redo-button.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, useCallback } from 'react';\n\nimport { useUndoRedo } from './use-undo-redo';\nimport { Button } from '../ui/button';\n\nimport type { UndoRedoAction } from './use-undo-redo';\nimport type { Editor } from '@tiptap/core';\n\nexport interface UndoRedoButtonProps extends Omit<\n\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t'type'\n> {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nexport const UndoRedoButton = forwardRef<\n\tHTMLButtonElement,\n\tUndoRedoButtonProps\n>(({ editor, action, onClick, ...buttonProps }, ref) => {\n\tconst { canExecute, handleAction, label, Icon } = useUndoRedo({\n\t\teditor,\n\t\taction\n\t});\n\n\tconst handleClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLButtonElement>) => {\n\t\t\tonClick?.(event);\n\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\thandleAction();\n\t\t},\n\t\t[handleAction, onClick]\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\tref={ref}\n\t\t\taria-label={label}\n\t\t\tdisabled={!canExecute}\n\t\t\tsize=\"icon\"\n\t\t\ttabIndex={-1}\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"ghost\"\n\t\t\tonClick={handleClick}\n\t\t\t{...buttonProps}\n\t\t>\n\t\t\t<Icon />\n\t\t</Button>\n\t);\n});\n\nUndoRedoButton.displayName = 'UndoRedoButton';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkDG;AAhDH,mBAAwC;AAExC,2BAA4B;AAC5B,oBAAuB;AAahB,MAAM,qBAAiB,yBAG5B,CAAC,EAAE,QAAQ,QAAQ,SAAS,GAAG,YAAY,GAAG,QAAQ;AACvD,QAAM,EAAE,YAAY,cAAc,OAAO,KAAK,QAAI,kCAAY;AAAA,IAC7D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,kBAAc;AAAA,IACnB,CAAC,UAA+C;AAC/C,gBAAU,KAAK;AAEf,UAAI,MAAM,iBAAkB;AAE5B,mBAAa;AAAA,IACd;AAAA,IACA,CAAC,cAAc,OAAO;AAAA,EACvB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,cAAY;AAAA,MACZ,UAAU,CAAC;AAAA,MACX,MAAK;AAAA,MACL,UAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,SAAS;AAAA,MACR,GAAG;AAAA,MAEJ,sDAAC,QAAK;AAAA;AAAA,EACP;AAEF,CAAC;AAED,eAAe,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/undo-redo-button/undo-redo-button.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, useCallback } from 'react';\n\nimport { useUndoRedo } from './use-undo-redo.js';\nimport { Button } from '../ui/button.js';\n\nimport type { UndoRedoAction } from './use-undo-redo.js';\nimport type { Editor } from '@tiptap/core';\n\nexport interface UndoRedoButtonProps extends Omit<\n\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t'type'\n> {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nexport const UndoRedoButton = forwardRef<\n\tHTMLButtonElement,\n\tUndoRedoButtonProps\n>(({ editor, action, onClick, ...buttonProps }, ref) => {\n\tconst { canExecute, handleAction, label, Icon } = useUndoRedo({\n\t\teditor,\n\t\taction\n\t});\n\n\tconst handleClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLButtonElement>) => {\n\t\t\tonClick?.(event);\n\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\thandleAction();\n\t\t},\n\t\t[handleAction, onClick]\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\tref={ref}\n\t\t\taria-label={label}\n\t\t\tdisabled={!canExecute}\n\t\t\tsize=\"icon\"\n\t\t\ttabIndex={-1}\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"ghost\"\n\t\t\tonClick={handleClick}\n\t\t\t{...buttonProps}\n\t\t>\n\t\t\t<Icon />\n\t\t</Button>\n\t);\n});\n\nUndoRedoButton.displayName = 'UndoRedoButton';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAwC;AAExC,2BAA4B;AAC5B,oBAAuB;AA6CpB;AAhCI,IAAM,qBAAiB,yBAG5B,CAAC,EAAE,QAAQ,QAAQ,SAAS,GAAG,YAAY,GAAG,QAAQ;AACvD,QAAM,EAAE,YAAY,cAAc,OAAO,KAAK,QAAI,kCAAY;AAAA,IAC7D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,kBAAc;AAAA,IACnB,CAAC,UAA+C;AAC/C,gBAAU,KAAK;AAEf,UAAI,MAAM,iBAAkB;AAE5B,mBAAa;AAAA,IACd;AAAA,IACA,CAAC,cAAc,OAAO;AAAA,EACvB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,cAAY;AAAA,MACZ,UAAU,CAAC;AAAA,MACX,MAAK;AAAA,MACL,UAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,SAAS;AAAA,MACR,GAAG;AAAA,MAEJ,sDAAC,QAAK;AAAA;AAAA,EACP;AAEF,CAAC;AAED,eAAe,cAAc;","names":[]}
@@ -1,9 +1,11 @@
1
1
  "use client";
2
- import { jsx } from "react/jsx-runtime";
2
+
3
+ // src/components/undo-redo-button/undo-redo-button.tsx
3
4
  import { forwardRef, useCallback } from "react";
4
- import { useUndoRedo } from "./use-undo-redo";
5
- import { Button } from "../ui/button";
6
- const UndoRedoButton = forwardRef(({ editor, action, onClick, ...buttonProps }, ref) => {
5
+ import { useUndoRedo } from "./use-undo-redo.mjs";
6
+ import { Button } from "../ui/button.mjs";
7
+ import { jsx } from "react/jsx-runtime";
8
+ var UndoRedoButton = forwardRef(({ editor, action, onClick, ...buttonProps }, ref) => {
7
9
  const { canExecute, handleAction, label, Icon } = useUndoRedo({
8
10
  editor,
9
11
  action
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/undo-redo-button/undo-redo-button.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, useCallback } from 'react';\n\nimport { useUndoRedo } from './use-undo-redo';\nimport { Button } from '../ui/button';\n\nimport type { UndoRedoAction } from './use-undo-redo';\nimport type { Editor } from '@tiptap/core';\n\nexport interface UndoRedoButtonProps extends Omit<\n\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t'type'\n> {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nexport const UndoRedoButton = forwardRef<\n\tHTMLButtonElement,\n\tUndoRedoButtonProps\n>(({ editor, action, onClick, ...buttonProps }, ref) => {\n\tconst { canExecute, handleAction, label, Icon } = useUndoRedo({\n\t\teditor,\n\t\taction\n\t});\n\n\tconst handleClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLButtonElement>) => {\n\t\t\tonClick?.(event);\n\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\thandleAction();\n\t\t},\n\t\t[handleAction, onClick]\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\tref={ref}\n\t\t\taria-label={label}\n\t\t\tdisabled={!canExecute}\n\t\t\tsize=\"icon\"\n\t\t\ttabIndex={-1}\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"ghost\"\n\t\t\tonClick={handleClick}\n\t\t\t{...buttonProps}\n\t\t>\n\t\t\t<Icon />\n\t\t</Button>\n\t);\n});\n\nUndoRedoButton.displayName = 'UndoRedoButton';\n"],"mappings":";AAkDG;AAhDH,SAAS,YAAY,mBAAmB;AAExC,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AAahB,MAAM,iBAAiB,WAG5B,CAAC,EAAE,QAAQ,QAAQ,SAAS,GAAG,YAAY,GAAG,QAAQ;AACvD,QAAM,EAAE,YAAY,cAAc,OAAO,KAAK,IAAI,YAAY;AAAA,IAC7D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,cAAc;AAAA,IACnB,CAAC,UAA+C;AAC/C,gBAAU,KAAK;AAEf,UAAI,MAAM,iBAAkB;AAE5B,mBAAa;AAAA,IACd;AAAA,IACA,CAAC,cAAc,OAAO;AAAA,EACvB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,cAAY;AAAA,MACZ,UAAU,CAAC;AAAA,MACX,MAAK;AAAA,MACL,UAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,SAAS;AAAA,MACR,GAAG;AAAA,MAEJ,8BAAC,QAAK;AAAA;AAAA,EACP;AAEF,CAAC;AAED,eAAe,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/undo-redo-button/undo-redo-button.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, useCallback } from 'react';\n\nimport { useUndoRedo } from './use-undo-redo.js';\nimport { Button } from '../ui/button.js';\n\nimport type { UndoRedoAction } from './use-undo-redo.js';\nimport type { Editor } from '@tiptap/core';\n\nexport interface UndoRedoButtonProps extends Omit<\n\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t'type'\n> {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nexport const UndoRedoButton = forwardRef<\n\tHTMLButtonElement,\n\tUndoRedoButtonProps\n>(({ editor, action, onClick, ...buttonProps }, ref) => {\n\tconst { canExecute, handleAction, label, Icon } = useUndoRedo({\n\t\teditor,\n\t\taction\n\t});\n\n\tconst handleClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLButtonElement>) => {\n\t\t\tonClick?.(event);\n\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\thandleAction();\n\t\t},\n\t\t[handleAction, onClick]\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\tref={ref}\n\t\t\taria-label={label}\n\t\t\tdisabled={!canExecute}\n\t\t\tsize=\"icon\"\n\t\t\ttabIndex={-1}\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"ghost\"\n\t\t\tonClick={handleClick}\n\t\t\t{...buttonProps}\n\t\t>\n\t\t\t<Icon />\n\t\t</Button>\n\t);\n});\n\nUndoRedoButton.displayName = 'UndoRedoButton';\n"],"mappings":";;;AAEA,SAAS,YAAY,mBAAmB;AAExC,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AA6CpB;AAhCI,IAAM,iBAAiB,WAG5B,CAAC,EAAE,QAAQ,QAAQ,SAAS,GAAG,YAAY,GAAG,QAAQ;AACvD,QAAM,EAAE,YAAY,cAAc,OAAO,KAAK,IAAI,YAAY;AAAA,IAC7D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,cAAc;AAAA,IACnB,CAAC,UAA+C;AAC/C,gBAAU,KAAK;AAEf,UAAI,MAAM,iBAAkB;AAE5B,mBAAa;AAAA,IACd;AAAA,IACA,CAAC,cAAc,OAAO;AAAA,EACvB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,cAAY;AAAA,MACZ,UAAU,CAAC;AAAA,MACX,MAAK;AAAA,MACL,UAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,SAAS;AAAA,MACR,GAAG;AAAA,MAEJ,8BAAC,QAAK;AAAA;AAAA,EACP;AAEF,CAAC;AAED,eAAe,cAAc;","names":[]}
@@ -16,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/undo-redo-button/use-undo-redo.ts
19
21
  var use_undo_redo_exports = {};
20
22
  __export(use_undo_redo_exports, {
21
23
  useUndoRedo: () => useUndoRedo
@@ -23,11 +25,11 @@ __export(use_undo_redo_exports, {
23
25
  module.exports = __toCommonJS(use_undo_redo_exports);
24
26
  var import_lucide_react = require("lucide-react");
25
27
  var import_react = require("react");
26
- const actionLabels = {
28
+ var actionLabels = {
27
29
  undo: "Undo",
28
30
  redo: "Redo"
29
31
  };
30
- const actionIcons = {
32
+ var actionIcons = {
31
33
  undo: import_lucide_react.Undo2,
32
34
  redo: import_lucide_react.Redo2
33
35
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/undo-redo-button/use-undo-redo.ts"],"sourcesContent":["import { Undo2, Redo2 } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport type { Editor } from '@tiptap/core';\n\nexport type UndoRedoAction = 'undo' | 'redo';\n\nexport interface UseUndoRedoConfig {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nconst actionLabels: Record<UndoRedoAction, string> = {\n\tundo: 'Undo',\n\tredo: 'Redo'\n};\n\nconst actionIcons = {\n\tundo: Undo2,\n\tredo: Redo2\n};\n\nfunction canExecuteAction(\n\teditor: Editor | null,\n\taction: UndoRedoAction\n): boolean {\n\tif (!editor || !editor.isEditable) return false;\n\n\treturn action === 'undo' ? editor.can().undo() : editor.can().redo();\n}\n\nexport function useUndoRedo({ editor, action }: UseUndoRedoConfig) {\n\tconst [canExecute, setCanExecute] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tconst handleUpdate = () => {\n\t\t\tsetCanExecute(canExecuteAction(editor, action));\n\t\t};\n\n\t\thandleUpdate();\n\n\t\teditor.on('transaction', handleUpdate);\n\n\t\treturn () => {\n\t\t\teditor.off('transaction', handleUpdate);\n\t\t};\n\t}, [editor, action]);\n\n\tconst handleAction = useCallback(() => {\n\t\tif (!editor || !editor.isEditable) return false;\n\n\t\tif (!canExecuteAction(editor, action)) return false;\n\n\t\tconst chain = editor.chain().focus();\n\n\t\treturn action === 'undo' ? chain.undo().run() : chain.redo().run();\n\t}, [editor, action]);\n\n\treturn {\n\t\tcanExecute,\n\t\thandleAction,\n\t\tlabel: actionLabels[action],\n\t\tIcon: actionIcons[action]\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA6B;AAC7B,mBAAiD;AAWjD,MAAM,eAA+C;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACP;AAEA,MAAM,cAAc;AAAA,EACnB,MAAM;AAAA,EACN,MAAM;AACP;AAEA,SAAS,iBACR,QACA,QACU;AACV,MAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,SAAO,WAAW,SAAS,OAAO,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,EAAE,KAAK;AACpE;AAEO,SAAS,YAAY,EAAE,QAAQ,OAAO,GAAsB;AAClE,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAElD,8BAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,eAAe,MAAM;AAC1B,oBAAc,iBAAiB,QAAQ,MAAM,CAAC;AAAA,IAC/C;AAEA,iBAAa;AAEb,WAAO,GAAG,eAAe,YAAY;AAErC,WAAO,MAAM;AACZ,aAAO,IAAI,eAAe,YAAY;AAAA,IACvC;AAAA,EACD,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,mBAAe,0BAAY,MAAM;AACtC,QAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,QAAI,CAAC,iBAAiB,QAAQ,MAAM,EAAG,QAAO;AAE9C,UAAM,QAAQ,OAAO,MAAM,EAAE,MAAM;AAEnC,WAAO,WAAW,SAAS,MAAM,KAAK,EAAE,IAAI,IAAI,MAAM,KAAK,EAAE,IAAI;AAAA,EAClE,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO,aAAa,MAAM;AAAA,IAC1B,MAAM,YAAY,MAAM;AAAA,EACzB;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/undo-redo-button/use-undo-redo.ts"],"sourcesContent":["import { Undo2, Redo2 } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport type { Editor } from '@tiptap/core';\n\nexport type UndoRedoAction = 'undo' | 'redo';\n\nexport interface UseUndoRedoConfig {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nconst actionLabels: Record<UndoRedoAction, string> = {\n\tundo: 'Undo',\n\tredo: 'Redo'\n};\n\nconst actionIcons = {\n\tundo: Undo2,\n\tredo: Redo2\n};\n\nfunction canExecuteAction(\n\teditor: Editor | null,\n\taction: UndoRedoAction\n): boolean {\n\tif (!editor || !editor.isEditable) return false;\n\n\treturn action === 'undo' ? editor.can().undo() : editor.can().redo();\n}\n\nexport function useUndoRedo({ editor, action }: UseUndoRedoConfig) {\n\tconst [canExecute, setCanExecute] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tconst handleUpdate = () => {\n\t\t\tsetCanExecute(canExecuteAction(editor, action));\n\t\t};\n\n\t\thandleUpdate();\n\n\t\teditor.on('transaction', handleUpdate);\n\n\t\treturn () => {\n\t\t\teditor.off('transaction', handleUpdate);\n\t\t};\n\t}, [editor, action]);\n\n\tconst handleAction = useCallback(() => {\n\t\tif (!editor || !editor.isEditable) return false;\n\n\t\tif (!canExecuteAction(editor, action)) return false;\n\n\t\tconst chain = editor.chain().focus();\n\n\t\treturn action === 'undo' ? chain.undo().run() : chain.redo().run();\n\t}, [editor, action]);\n\n\treturn {\n\t\tcanExecute,\n\t\thandleAction,\n\t\tlabel: actionLabels[action],\n\t\tIcon: actionIcons[action]\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA6B;AAC7B,mBAAiD;AAWjD,IAAM,eAA+C;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACP;AAEA,IAAM,cAAc;AAAA,EACnB,MAAM;AAAA,EACN,MAAM;AACP;AAEA,SAAS,iBACR,QACA,QACU;AACV,MAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,SAAO,WAAW,SAAS,OAAO,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,EAAE,KAAK;AACpE;AAEO,SAAS,YAAY,EAAE,QAAQ,OAAO,GAAsB;AAClE,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAElD,8BAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,eAAe,MAAM;AAC1B,oBAAc,iBAAiB,QAAQ,MAAM,CAAC;AAAA,IAC/C;AAEA,iBAAa;AAEb,WAAO,GAAG,eAAe,YAAY;AAErC,WAAO,MAAM;AACZ,aAAO,IAAI,eAAe,YAAY;AAAA,IACvC;AAAA,EACD,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,mBAAe,0BAAY,MAAM;AACtC,QAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,QAAI,CAAC,iBAAiB,QAAQ,MAAM,EAAG,QAAO;AAE9C,UAAM,QAAQ,OAAO,MAAM,EAAE,MAAM;AAEnC,WAAO,WAAW,SAAS,MAAM,KAAK,EAAE,IAAI,IAAI,MAAM,KAAK,EAAE,IAAI;AAAA,EAClE,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO,aAAa,MAAM;AAAA,IAC1B,MAAM,YAAY,MAAM;AAAA,EACzB;AACD;","names":[]}
@@ -1,10 +1,11 @@
1
+ // src/components/undo-redo-button/use-undo-redo.ts
1
2
  import { Undo2, Redo2 } from "lucide-react";
2
3
  import { useCallback, useEffect, useState } from "react";
3
- const actionLabels = {
4
+ var actionLabels = {
4
5
  undo: "Undo",
5
6
  redo: "Redo"
6
7
  };
7
- const actionIcons = {
8
+ var actionIcons = {
8
9
  undo: Undo2,
9
10
  redo: Redo2
10
11
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/undo-redo-button/use-undo-redo.ts"],"sourcesContent":["import { Undo2, Redo2 } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport type { Editor } from '@tiptap/core';\n\nexport type UndoRedoAction = 'undo' | 'redo';\n\nexport interface UseUndoRedoConfig {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nconst actionLabels: Record<UndoRedoAction, string> = {\n\tundo: 'Undo',\n\tredo: 'Redo'\n};\n\nconst actionIcons = {\n\tundo: Undo2,\n\tredo: Redo2\n};\n\nfunction canExecuteAction(\n\teditor: Editor | null,\n\taction: UndoRedoAction\n): boolean {\n\tif (!editor || !editor.isEditable) return false;\n\n\treturn action === 'undo' ? editor.can().undo() : editor.can().redo();\n}\n\nexport function useUndoRedo({ editor, action }: UseUndoRedoConfig) {\n\tconst [canExecute, setCanExecute] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tconst handleUpdate = () => {\n\t\t\tsetCanExecute(canExecuteAction(editor, action));\n\t\t};\n\n\t\thandleUpdate();\n\n\t\teditor.on('transaction', handleUpdate);\n\n\t\treturn () => {\n\t\t\teditor.off('transaction', handleUpdate);\n\t\t};\n\t}, [editor, action]);\n\n\tconst handleAction = useCallback(() => {\n\t\tif (!editor || !editor.isEditable) return false;\n\n\t\tif (!canExecuteAction(editor, action)) return false;\n\n\t\tconst chain = editor.chain().focus();\n\n\t\treturn action === 'undo' ? chain.undo().run() : chain.redo().run();\n\t}, [editor, action]);\n\n\treturn {\n\t\tcanExecute,\n\t\thandleAction,\n\t\tlabel: actionLabels[action],\n\t\tIcon: actionIcons[action]\n\t};\n}\n"],"mappings":"AAAA,SAAS,OAAO,aAAa;AAC7B,SAAS,aAAa,WAAW,gBAAgB;AAWjD,MAAM,eAA+C;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACP;AAEA,MAAM,cAAc;AAAA,EACnB,MAAM;AAAA,EACN,MAAM;AACP;AAEA,SAAS,iBACR,QACA,QACU;AACV,MAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,SAAO,WAAW,SAAS,OAAO,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,EAAE,KAAK;AACpE;AAEO,SAAS,YAAY,EAAE,QAAQ,OAAO,GAAsB;AAClE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,eAAe,MAAM;AAC1B,oBAAc,iBAAiB,QAAQ,MAAM,CAAC;AAAA,IAC/C;AAEA,iBAAa;AAEb,WAAO,GAAG,eAAe,YAAY;AAErC,WAAO,MAAM;AACZ,aAAO,IAAI,eAAe,YAAY;AAAA,IACvC;AAAA,EACD,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,eAAe,YAAY,MAAM;AACtC,QAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,QAAI,CAAC,iBAAiB,QAAQ,MAAM,EAAG,QAAO;AAE9C,UAAM,QAAQ,OAAO,MAAM,EAAE,MAAM;AAEnC,WAAO,WAAW,SAAS,MAAM,KAAK,EAAE,IAAI,IAAI,MAAM,KAAK,EAAE,IAAI;AAAA,EAClE,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO,aAAa,MAAM;AAAA,IAC1B,MAAM,YAAY,MAAM;AAAA,EACzB;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/undo-redo-button/use-undo-redo.ts"],"sourcesContent":["import { Undo2, Redo2 } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport type { Editor } from '@tiptap/core';\n\nexport type UndoRedoAction = 'undo' | 'redo';\n\nexport interface UseUndoRedoConfig {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nconst actionLabels: Record<UndoRedoAction, string> = {\n\tundo: 'Undo',\n\tredo: 'Redo'\n};\n\nconst actionIcons = {\n\tundo: Undo2,\n\tredo: Redo2\n};\n\nfunction canExecuteAction(\n\teditor: Editor | null,\n\taction: UndoRedoAction\n): boolean {\n\tif (!editor || !editor.isEditable) return false;\n\n\treturn action === 'undo' ? editor.can().undo() : editor.can().redo();\n}\n\nexport function useUndoRedo({ editor, action }: UseUndoRedoConfig) {\n\tconst [canExecute, setCanExecute] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tconst handleUpdate = () => {\n\t\t\tsetCanExecute(canExecuteAction(editor, action));\n\t\t};\n\n\t\thandleUpdate();\n\n\t\teditor.on('transaction', handleUpdate);\n\n\t\treturn () => {\n\t\t\teditor.off('transaction', handleUpdate);\n\t\t};\n\t}, [editor, action]);\n\n\tconst handleAction = useCallback(() => {\n\t\tif (!editor || !editor.isEditable) return false;\n\n\t\tif (!canExecuteAction(editor, action)) return false;\n\n\t\tconst chain = editor.chain().focus();\n\n\t\treturn action === 'undo' ? chain.undo().run() : chain.redo().run();\n\t}, [editor, action]);\n\n\treturn {\n\t\tcanExecute,\n\t\thandleAction,\n\t\tlabel: actionLabels[action],\n\t\tIcon: actionIcons[action]\n\t};\n}\n"],"mappings":";AAAA,SAAS,OAAO,aAAa;AAC7B,SAAS,aAAa,WAAW,gBAAgB;AAWjD,IAAM,eAA+C;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACP;AAEA,IAAM,cAAc;AAAA,EACnB,MAAM;AAAA,EACN,MAAM;AACP;AAEA,SAAS,iBACR,QACA,QACU;AACV,MAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,SAAO,WAAW,SAAS,OAAO,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,EAAE,KAAK;AACpE;AAEO,SAAS,YAAY,EAAE,QAAQ,OAAO,GAAsB;AAClE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,eAAe,MAAM;AAC1B,oBAAc,iBAAiB,QAAQ,MAAM,CAAC;AAAA,IAC/C;AAEA,iBAAa;AAEb,WAAO,GAAG,eAAe,YAAY;AAErC,WAAO,MAAM;AACZ,aAAO,IAAI,eAAe,YAAY;AAAA,IACvC;AAAA,EACD,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,eAAe,YAAY,MAAM;AACtC,QAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,QAAI,CAAC,iBAAiB,QAAQ,MAAM,EAAG,QAAO;AAE9C,UAAM,QAAQ,OAAO,MAAM,EAAE,MAAM;AAEnC,WAAO,WAAW,SAAS,MAAM,KAAK,EAAE,IAAI,IAAI,MAAM,KAAK,EAAE,IAAI;AAAA,EAClE,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO,aAAa,MAAM;AAAA,IAC1B,MAAM,YAAY,MAAM;AAAA,EACzB;AACD;","names":[]}
@@ -16,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/extensions/code-block.ts
19
21
  var code_block_exports = {};
20
22
  __export(code_block_exports, {
21
23
  CodeBlockExtension: () => CodeBlockExtension,
@@ -27,11 +29,11 @@ var import_core = require("@tiptap/core");
27
29
  var import_extension_code_block_lowlight = require("@tiptap/extension-code-block-lowlight");
28
30
  var import_react = require("@tiptap/react");
29
31
  var import_lowlight = require("lowlight");
30
- var import_code_block_view = require("../components/code-block-view/code-block-view");
31
- var import_languages = require("../lib/languages");
32
- const defaultLowlight = (0, import_lowlight.createLowlight)(import_lowlight.common);
33
- const backtickInputRegex = /^```([a-z]+)?[\s\n]$/;
34
- const tildeInputRegex = /^~~~([a-z]+)?[\s\n]$/;
32
+ var import_code_block_view = require("../components/code-block-view/code-block-view.cjs");
33
+ var import_languages = require("../lib/languages.cjs");
34
+ var defaultLowlight = (0, import_lowlight.createLowlight)(import_lowlight.common);
35
+ var backtickInputRegex = /^```([a-z]+)?[\s\n]$/;
36
+ var tildeInputRegex = /^~~~([a-z]+)?[\s\n]$/;
35
37
  function createCodeBlockExtension(lowlight) {
36
38
  return import_extension_code_block_lowlight.CodeBlockLowlight.configure({
37
39
  lowlight,
@@ -93,7 +95,7 @@ function createCodeBlockExtension(lowlight) {
93
95
  }
94
96
  });
95
97
  }
96
- const CodeBlockExtension = createCodeBlockExtension(defaultLowlight);
98
+ var CodeBlockExtension = createCodeBlockExtension(defaultLowlight);
97
99
  // Annotate the CommonJS export names for ESM import in node:
98
100
  0 && (module.exports = {
99
101
  CodeBlockExtension,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/extensions/code-block.ts"],"sourcesContent":["import { textblockTypeInputRule } from '@tiptap/core';\nimport { CodeBlockLowlight } from '@tiptap/extension-code-block-lowlight';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\nimport { common, createLowlight } from 'lowlight';\n\nimport { CodeBlockView } from '../components/code-block-view/code-block-view';\nimport { normalizeLanguage } from '../lib/languages';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\n// Module-level instance, shared by the default CodeBlockExtension and the\n// reader. Loads the lowlight `common` set (~37 mainstream languages, ~150 KB).\n// Consumers needing more or fewer languages should call createCodeBlockExtension\n// with their own instance and pass the same instance to <NotraReader lowlight={…} />.\nexport const defaultLowlight: Lowlight = createLowlight(common);\n\n// Mirrors the regexes in @tiptap/extension-code-block. Override the rules so\n// the captured language is collapsed to its canonical LANGUAGES value before\n// being written to the node attribute (e.g. ```js → language: \"javascript\").\nconst backtickInputRegex = /^```([a-z]+)?[\\s\\n]$/;\nconst tildeInputRegex = /^~~~([a-z]+)?[\\s\\n]$/;\n\nexport function createCodeBlockExtension(lowlight: Lowlight) {\n\treturn CodeBlockLowlight.configure({\n\t\tlowlight,\n\t\t// Tab inserts spaces instead of leaving the editor; Shift-Tab dedents.\n\t\tenableTabIndentation: true,\n\t\ttabSize: 2\n\t}).extend({\n\t\taddNodeView() {\n\t\t\treturn ReactNodeViewRenderer(CodeBlockView);\n\t\t},\n\t\taddKeyboardShortcuts() {\n\t\t\tconst parent = this.parent?.() ?? {};\n\n\t\t\t// Upstream's empty-selection Tab branch goes through\n\t\t\t// `editor.commands.insertContent(' '.repeat(tabSize))`, which\n\t\t\t// `tiptap-markdown` reroutes via its overridden `insertContentAt`\n\t\t\t// → `markdown.parser.parse(...)`. Whitespace-only input parses to\n\t\t\t// an empty document, so the spaces vanish while the keymap still\n\t\t\t// reports the event as handled. Use a raw transaction instead.\n\t\t\treturn {\n\t\t\t\t...parent,\n\t\t\t\tTab: ({ editor }) => {\n\t\t\t\t\tif (!this.options.enableTabIndentation) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tabSize = this.options.tabSize ?? 2;\n\t\t\t\t\tconst { selection } = editor.state;\n\t\t\t\t\tconst { $from, empty } = selection;\n\n\t\t\t\t\tif ($from.parent.type !== this.type) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst indent = ' '.repeat(tabSize);\n\n\t\t\t\t\tif (empty) {\n\t\t\t\t\t\treturn editor.commands.command(({ tr }) => {\n\t\t\t\t\t\t\ttr.insertText(indent);\n\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn editor.commands.command(({ tr, state }) => {\n\t\t\t\t\t\tconst { from, to } = selection;\n\t\t\t\t\t\tconst text = state.doc.textBetween(from, to, '\\n', '\\n');\n\t\t\t\t\t\tconst indented = text\n\t\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t\t.map((line) => indent + line)\n\t\t\t\t\t\t\t.join('\\n');\n\n\t\t\t\t\t\ttr.replaceWith(from, to, state.schema.text(indented));\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\taddInputRules() {\n\t\t\treturn [\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: backtickInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: tildeInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t];\n\t\t}\n\t});\n}\n\nexport const CodeBlockExtension = createCodeBlockExtension(defaultLowlight);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAuC;AACvC,2CAAkC;AAClC,mBAAsC;AACtC,sBAAuC;AAEvC,6BAA8B;AAC9B,uBAAkC;AAQ3B,MAAM,sBAA4B,gCAAe,sBAAM;AAK9D,MAAM,qBAAqB;AAC3B,MAAM,kBAAkB;AAEjB,SAAS,yBAAyB,UAAoB;AAC5D,SAAO,uDAAkB,UAAU;AAAA,IAClC;AAAA;AAAA,IAEA,sBAAsB;AAAA,IACtB,SAAS;AAAA,EACV,CAAC,EAAE,OAAO;AAAA,IACT,cAAc;AACb,iBAAO,oCAAsB,oCAAa;AAAA,IAC3C;AAAA,IACA,uBAAuB;AACtB,YAAM,SAAS,KAAK,SAAS,KAAK,CAAC;AAQnC,aAAO;AAAA,QACN,GAAG;AAAA,QACH,KAAK,CAAC,EAAE,OAAO,MAAM;AACpB,cAAI,CAAC,KAAK,QAAQ,sBAAsB;AACvC,mBAAO;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,QAAQ,WAAW;AACxC,gBAAM,EAAE,UAAU,IAAI,OAAO;AAC7B,gBAAM,EAAE,OAAO,MAAM,IAAI;AAEzB,cAAI,MAAM,OAAO,SAAS,KAAK,MAAM;AACpC,mBAAO;AAAA,UACR;AAEA,gBAAM,SAAS,IAAI,OAAO,OAAO;AAEjC,cAAI,OAAO;AACV,mBAAO,OAAO,SAAS,QAAQ,CAAC,EAAE,GAAG,MAAM;AAC1C,iBAAG,WAAW,MAAM;AAEpB,qBAAO;AAAA,YACR,CAAC;AAAA,UACF;AAEA,iBAAO,OAAO,SAAS,QAAQ,CAAC,EAAE,IAAI,MAAM,MAAM;AACjD,kBAAM,EAAE,MAAM,GAAG,IAAI;AACrB,kBAAM,OAAO,MAAM,IAAI,YAAY,MAAM,IAAI,MAAM,IAAI;AACvD,kBAAM,WAAW,KACf,MAAM,IAAI,EACV,IAAI,CAAC,SAAS,SAAS,IAAI,EAC3B,KAAK,IAAI;AAEX,eAAG,YAAY,MAAM,IAAI,MAAM,OAAO,KAAK,QAAQ,CAAC;AAEpD,mBAAO;AAAA,UACR,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IACD;AAAA,IACA,gBAAgB;AACf,aAAO;AAAA,YACN,oCAAuB;AAAA,UACtB,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX,eAAe,CAAC,WAAW;AAAA,YAC1B,cAAU,oCAAkB,MAAM,CAAC,CAAC;AAAA,UACrC;AAAA,QACD,CAAC;AAAA,YACD,oCAAuB;AAAA,UACtB,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX,eAAe,CAAC,WAAW;AAAA,YAC1B,cAAU,oCAAkB,MAAM,CAAC,CAAC;AAAA,UACrC;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD,CAAC;AACF;AAEO,MAAM,qBAAqB,yBAAyB,eAAe;","names":[]}
1
+ {"version":3,"sources":["../../src/extensions/code-block.ts"],"sourcesContent":["import { textblockTypeInputRule } from '@tiptap/core';\nimport { CodeBlockLowlight } from '@tiptap/extension-code-block-lowlight';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\nimport { common, createLowlight } from 'lowlight';\n\nimport { CodeBlockView } from '../components/code-block-view/code-block-view.js';\nimport { normalizeLanguage } from '../lib/languages.js';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\n// Module-level instance, shared by the default CodeBlockExtension and the\n// reader. Loads the lowlight `common` set (~37 mainstream languages, ~150 KB).\n// Consumers needing more or fewer languages should call createCodeBlockExtension\n// with their own instance and pass the same instance to <NotraReader lowlight={…} />.\nexport const defaultLowlight: Lowlight = createLowlight(common);\n\n// Mirrors the regexes in @tiptap/extension-code-block. Override the rules so\n// the captured language is collapsed to its canonical LANGUAGES value before\n// being written to the node attribute (e.g. ```js → language: \"javascript\").\nconst backtickInputRegex = /^```([a-z]+)?[\\s\\n]$/;\nconst tildeInputRegex = /^~~~([a-z]+)?[\\s\\n]$/;\n\nexport function createCodeBlockExtension(lowlight: Lowlight) {\n\treturn CodeBlockLowlight.configure({\n\t\tlowlight,\n\t\t// Tab inserts spaces instead of leaving the editor; Shift-Tab dedents.\n\t\tenableTabIndentation: true,\n\t\ttabSize: 2\n\t}).extend({\n\t\taddNodeView() {\n\t\t\treturn ReactNodeViewRenderer(CodeBlockView);\n\t\t},\n\t\taddKeyboardShortcuts() {\n\t\t\tconst parent = this.parent?.() ?? {};\n\n\t\t\t// Upstream's empty-selection Tab branch goes through\n\t\t\t// `editor.commands.insertContent(' '.repeat(tabSize))`, which\n\t\t\t// `tiptap-markdown` reroutes via its overridden `insertContentAt`\n\t\t\t// → `markdown.parser.parse(...)`. Whitespace-only input parses to\n\t\t\t// an empty document, so the spaces vanish while the keymap still\n\t\t\t// reports the event as handled. Use a raw transaction instead.\n\t\t\treturn {\n\t\t\t\t...parent,\n\t\t\t\tTab: ({ editor }) => {\n\t\t\t\t\tif (!this.options.enableTabIndentation) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tabSize = this.options.tabSize ?? 2;\n\t\t\t\t\tconst { selection } = editor.state;\n\t\t\t\t\tconst { $from, empty } = selection;\n\n\t\t\t\t\tif ($from.parent.type !== this.type) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst indent = ' '.repeat(tabSize);\n\n\t\t\t\t\tif (empty) {\n\t\t\t\t\t\treturn editor.commands.command(({ tr }) => {\n\t\t\t\t\t\t\ttr.insertText(indent);\n\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn editor.commands.command(({ tr, state }) => {\n\t\t\t\t\t\tconst { from, to } = selection;\n\t\t\t\t\t\tconst text = state.doc.textBetween(from, to, '\\n', '\\n');\n\t\t\t\t\t\tconst indented = text\n\t\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t\t.map((line) => indent + line)\n\t\t\t\t\t\t\t.join('\\n');\n\n\t\t\t\t\t\ttr.replaceWith(from, to, state.schema.text(indented));\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\taddInputRules() {\n\t\t\treturn [\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: backtickInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: tildeInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t];\n\t\t}\n\t});\n}\n\nexport const CodeBlockExtension = createCodeBlockExtension(defaultLowlight);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAuC;AACvC,2CAAkC;AAClC,mBAAsC;AACtC,sBAAuC;AAEvC,6BAA8B;AAC9B,uBAAkC;AAQ3B,IAAM,sBAA4B,gCAAe,sBAAM;AAK9D,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AAEjB,SAAS,yBAAyB,UAAoB;AAC5D,SAAO,uDAAkB,UAAU;AAAA,IAClC;AAAA;AAAA,IAEA,sBAAsB;AAAA,IACtB,SAAS;AAAA,EACV,CAAC,EAAE,OAAO;AAAA,IACT,cAAc;AACb,iBAAO,oCAAsB,oCAAa;AAAA,IAC3C;AAAA,IACA,uBAAuB;AACtB,YAAM,SAAS,KAAK,SAAS,KAAK,CAAC;AAQnC,aAAO;AAAA,QACN,GAAG;AAAA,QACH,KAAK,CAAC,EAAE,OAAO,MAAM;AACpB,cAAI,CAAC,KAAK,QAAQ,sBAAsB;AACvC,mBAAO;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,QAAQ,WAAW;AACxC,gBAAM,EAAE,UAAU,IAAI,OAAO;AAC7B,gBAAM,EAAE,OAAO,MAAM,IAAI;AAEzB,cAAI,MAAM,OAAO,SAAS,KAAK,MAAM;AACpC,mBAAO;AAAA,UACR;AAEA,gBAAM,SAAS,IAAI,OAAO,OAAO;AAEjC,cAAI,OAAO;AACV,mBAAO,OAAO,SAAS,QAAQ,CAAC,EAAE,GAAG,MAAM;AAC1C,iBAAG,WAAW,MAAM;AAEpB,qBAAO;AAAA,YACR,CAAC;AAAA,UACF;AAEA,iBAAO,OAAO,SAAS,QAAQ,CAAC,EAAE,IAAI,MAAM,MAAM;AACjD,kBAAM,EAAE,MAAM,GAAG,IAAI;AACrB,kBAAM,OAAO,MAAM,IAAI,YAAY,MAAM,IAAI,MAAM,IAAI;AACvD,kBAAM,WAAW,KACf,MAAM,IAAI,EACV,IAAI,CAAC,SAAS,SAAS,IAAI,EAC3B,KAAK,IAAI;AAEX,eAAG,YAAY,MAAM,IAAI,MAAM,OAAO,KAAK,QAAQ,CAAC;AAEpD,mBAAO;AAAA,UACR,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IACD;AAAA,IACA,gBAAgB;AACf,aAAO;AAAA,YACN,oCAAuB;AAAA,UACtB,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX,eAAe,CAAC,WAAW;AAAA,YAC1B,cAAU,oCAAkB,MAAM,CAAC,CAAC;AAAA,UACrC;AAAA,QACD,CAAC;AAAA,YACD,oCAAuB;AAAA,UACtB,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX,eAAe,CAAC,WAAW;AAAA,YAC1B,cAAU,oCAAkB,MAAM,CAAC,CAAC;AAAA,UACrC;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD,CAAC;AACF;AAEO,IAAM,qBAAqB,yBAAyB,eAAe;","names":[]}
@@ -1,12 +1,13 @@
1
+ // src/extensions/code-block.ts
1
2
  import { textblockTypeInputRule } from "@tiptap/core";
2
3
  import { CodeBlockLowlight } from "@tiptap/extension-code-block-lowlight";
3
4
  import { ReactNodeViewRenderer } from "@tiptap/react";
4
5
  import { common, createLowlight } from "lowlight";
5
- import { CodeBlockView } from "../components/code-block-view/code-block-view";
6
- import { normalizeLanguage } from "../lib/languages";
7
- const defaultLowlight = createLowlight(common);
8
- const backtickInputRegex = /^```([a-z]+)?[\s\n]$/;
9
- const tildeInputRegex = /^~~~([a-z]+)?[\s\n]$/;
6
+ import { CodeBlockView } from "../components/code-block-view/code-block-view.mjs";
7
+ import { normalizeLanguage } from "../lib/languages.mjs";
8
+ var defaultLowlight = createLowlight(common);
9
+ var backtickInputRegex = /^```([a-z]+)?[\s\n]$/;
10
+ var tildeInputRegex = /^~~~([a-z]+)?[\s\n]$/;
10
11
  function createCodeBlockExtension(lowlight) {
11
12
  return CodeBlockLowlight.configure({
12
13
  lowlight,
@@ -68,7 +69,7 @@ function createCodeBlockExtension(lowlight) {
68
69
  }
69
70
  });
70
71
  }
71
- const CodeBlockExtension = createCodeBlockExtension(defaultLowlight);
72
+ var CodeBlockExtension = createCodeBlockExtension(defaultLowlight);
72
73
  export {
73
74
  CodeBlockExtension,
74
75
  createCodeBlockExtension,