@verbb/plugin-kit-react 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +31 -0
  4. package/dist/_virtual/_rolldown/runtime.js +34 -0
  5. package/dist/components/Button.d.ts +26 -0
  6. package/dist/components/Button.d.ts.map +1 -0
  7. package/dist/components/Button.js +148 -0
  8. package/dist/components/Button.js.map +1 -0
  9. package/dist/components/ButtonGroup.d.ts +11 -0
  10. package/dist/components/ButtonGroup.d.ts.map +1 -0
  11. package/dist/components/ButtonGroup.js +59 -0
  12. package/dist/components/ButtonGroup.js.map +1 -0
  13. package/dist/components/Calendar.d.ts +11 -0
  14. package/dist/components/Calendar.d.ts.map +1 -0
  15. package/dist/components/Calendar.js +133 -0
  16. package/dist/components/Calendar.js.map +1 -0
  17. package/dist/components/Checkbox.d.ts +5 -0
  18. package/dist/components/Checkbox.d.ts.map +1 -0
  19. package/dist/components/Checkbox.js +41 -0
  20. package/dist/components/Checkbox.js.map +1 -0
  21. package/dist/components/CheckboxInput.d.ts +14 -0
  22. package/dist/components/CheckboxInput.d.ts.map +1 -0
  23. package/dist/components/CheckboxInput.js +31 -0
  24. package/dist/components/CheckboxInput.js.map +1 -0
  25. package/dist/components/CheckboxSelect.d.ts +19 -0
  26. package/dist/components/CheckboxSelect.d.ts.map +1 -0
  27. package/dist/components/CheckboxSelect.js +63 -0
  28. package/dist/components/CheckboxSelect.js.map +1 -0
  29. package/dist/components/ColorInput.d.ts +14 -0
  30. package/dist/components/ColorInput.d.ts.map +1 -0
  31. package/dist/components/ColorInput.js +148 -0
  32. package/dist/components/ColorInput.js.map +1 -0
  33. package/dist/components/Combobox.d.ts +40 -0
  34. package/dist/components/Combobox.d.ts.map +1 -0
  35. package/dist/components/Combobox.js +393 -0
  36. package/dist/components/Combobox.js.map +1 -0
  37. package/dist/components/ComboboxInput.d.ts +28 -0
  38. package/dist/components/ComboboxInput.d.ts.map +1 -0
  39. package/dist/components/ComboboxInput.js +165 -0
  40. package/dist/components/ComboboxInput.js.map +1 -0
  41. package/dist/components/Command.d.ts +26 -0
  42. package/dist/components/Command.d.ts.map +1 -0
  43. package/dist/components/Command.js +94 -0
  44. package/dist/components/Command.js.map +1 -0
  45. package/dist/components/CopyButton.d.ts +9 -0
  46. package/dist/components/CopyButton.d.ts.map +1 -0
  47. package/dist/components/CopyButton.js +40 -0
  48. package/dist/components/CopyButton.js.map +1 -0
  49. package/dist/components/DatePicker.d.ts +9 -0
  50. package/dist/components/DatePicker.d.ts.map +1 -0
  51. package/dist/components/DatePicker.js +46 -0
  52. package/dist/components/DatePicker.js.map +1 -0
  53. package/dist/components/Dialog.d.ts +21 -0
  54. package/dist/components/Dialog.d.ts.map +1 -0
  55. package/dist/components/Dialog.js +179 -0
  56. package/dist/components/Dialog.js.map +1 -0
  57. package/dist/components/DropdownMenu.d.ts +47 -0
  58. package/dist/components/DropdownMenu.d.ts.map +1 -0
  59. package/dist/components/DropdownMenu.js +240 -0
  60. package/dist/components/DropdownMenu.js.map +1 -0
  61. package/dist/components/EditableTable.d.ts +28 -0
  62. package/dist/components/EditableTable.d.ts.map +1 -0
  63. package/dist/components/EditableTable.js +145 -0
  64. package/dist/components/EditableTable.js.map +1 -0
  65. package/dist/components/FadeIn.d.ts +12 -0
  66. package/dist/components/FadeIn.d.ts.map +1 -0
  67. package/dist/components/FadeIn.js +24 -0
  68. package/dist/components/FadeIn.js.map +1 -0
  69. package/dist/components/Input.d.ts +9 -0
  70. package/dist/components/Input.d.ts.map +1 -0
  71. package/dist/components/Input.js +43 -0
  72. package/dist/components/Input.js.map +1 -0
  73. package/dist/components/InputGroup.d.ts +20 -0
  74. package/dist/components/InputGroup.d.ts.map +1 -0
  75. package/dist/components/InputGroup.js +111 -0
  76. package/dist/components/InputGroup.js.map +1 -0
  77. package/dist/components/Label.d.ts +4 -0
  78. package/dist/components/Label.d.ts.map +1 -0
  79. package/dist/components/Label.js +15 -0
  80. package/dist/components/Label.js.map +1 -0
  81. package/dist/components/Lightswitch.d.ts +9 -0
  82. package/dist/components/Lightswitch.d.ts.map +1 -0
  83. package/dist/components/Lightswitch.js +56 -0
  84. package/dist/components/Lightswitch.js.map +1 -0
  85. package/dist/components/Markdown.d.ts +11 -0
  86. package/dist/components/Markdown.d.ts.map +1 -0
  87. package/dist/components/Markdown.js +46 -0
  88. package/dist/components/Markdown.js.map +1 -0
  89. package/dist/components/MenuButton.d.ts +40 -0
  90. package/dist/components/MenuButton.d.ts.map +1 -0
  91. package/dist/components/MenuButton.js +122 -0
  92. package/dist/components/MenuButton.js.map +1 -0
  93. package/dist/components/ModalTabs.d.ts +8 -0
  94. package/dist/components/ModalTabs.d.ts.map +1 -0
  95. package/dist/components/ModalTabs.js +37 -0
  96. package/dist/components/ModalTabs.js.map +1 -0
  97. package/dist/components/PaneTabs.d.ts +8 -0
  98. package/dist/components/PaneTabs.d.ts.map +1 -0
  99. package/dist/components/PaneTabs.js +37 -0
  100. package/dist/components/PaneTabs.js.map +1 -0
  101. package/dist/components/Popover.d.ts +12 -0
  102. package/dist/components/Popover.d.ts.map +1 -0
  103. package/dist/components/Popover.js +70 -0
  104. package/dist/components/Popover.js.map +1 -0
  105. package/dist/components/RadioGroup.d.ts +6 -0
  106. package/dist/components/RadioGroup.d.ts.map +1 -0
  107. package/dist/components/RadioGroup.js +34 -0
  108. package/dist/components/RadioGroup.js.map +1 -0
  109. package/dist/components/ScrollArea.d.ts +16 -0
  110. package/dist/components/ScrollArea.d.ts.map +1 -0
  111. package/dist/components/ScrollArea.js +47 -0
  112. package/dist/components/ScrollArea.js.map +1 -0
  113. package/dist/components/Select.d.ts +23 -0
  114. package/dist/components/Select.d.ts.map +1 -0
  115. package/dist/components/Select.js +205 -0
  116. package/dist/components/Select.js.map +1 -0
  117. package/dist/components/SelectInput.d.ts +33 -0
  118. package/dist/components/SelectInput.d.ts.map +1 -0
  119. package/dist/components/SelectInput.js +85 -0
  120. package/dist/components/SelectInput.js.map +1 -0
  121. package/dist/components/Separator.d.ts +4 -0
  122. package/dist/components/Separator.d.ts.map +1 -0
  123. package/dist/components/Separator.js +17 -0
  124. package/dist/components/Separator.js.map +1 -0
  125. package/dist/components/SlideUp.d.ts +12 -0
  126. package/dist/components/SlideUp.d.ts.map +1 -0
  127. package/dist/components/SlideUp.js +36 -0
  128. package/dist/components/SlideUp.js.map +1 -0
  129. package/dist/components/Slot.d.ts +6 -0
  130. package/dist/components/Slot.d.ts.map +1 -0
  131. package/dist/components/Slot.js +52 -0
  132. package/dist/components/Slot.js.map +1 -0
  133. package/dist/components/Spinner.d.ts +9 -0
  134. package/dist/components/Spinner.d.ts.map +1 -0
  135. package/dist/components/Spinner.js +43 -0
  136. package/dist/components/Spinner.js.map +1 -0
  137. package/dist/components/Status.d.ts +8 -0
  138. package/dist/components/Status.d.ts.map +1 -0
  139. package/dist/components/Status.js +55 -0
  140. package/dist/components/Status.js.map +1 -0
  141. package/dist/components/Table.d.ts +10 -0
  142. package/dist/components/Table.d.ts.map +1 -0
  143. package/dist/components/Table.js +64 -0
  144. package/dist/components/Table.js.map +1 -0
  145. package/dist/components/Tabs.d.ts +8 -0
  146. package/dist/components/Tabs.d.ts.map +1 -0
  147. package/dist/components/Tabs.js +37 -0
  148. package/dist/components/Tabs.js.map +1 -0
  149. package/dist/components/Textarea.d.ts +8 -0
  150. package/dist/components/Textarea.d.ts.map +1 -0
  151. package/dist/components/Textarea.js +26 -0
  152. package/dist/components/Textarea.js.map +1 -0
  153. package/dist/components/TimePicker.d.ts +9 -0
  154. package/dist/components/TimePicker.d.ts.map +1 -0
  155. package/dist/components/TimePicker.js +40 -0
  156. package/dist/components/TimePicker.js.map +1 -0
  157. package/dist/components/TiptapContent.d.ts +9 -0
  158. package/dist/components/TiptapContent.d.ts.map +1 -0
  159. package/dist/components/TiptapContent.js +24 -0
  160. package/dist/components/TiptapContent.js.map +1 -0
  161. package/dist/components/TiptapEditor.d.ts +41 -0
  162. package/dist/components/TiptapEditor.d.ts.map +1 -0
  163. package/dist/components/TiptapEditor.js +555 -0
  164. package/dist/components/TiptapEditor.js.map +1 -0
  165. package/dist/components/TiptapInput.d.ts +15 -0
  166. package/dist/components/TiptapInput.d.ts.map +1 -0
  167. package/dist/components/TiptapInput.js +138 -0
  168. package/dist/components/TiptapInput.js.map +1 -0
  169. package/dist/components/Toggle.d.ts +9 -0
  170. package/dist/components/Toggle.d.ts.map +1 -0
  171. package/dist/components/Toggle.js +48 -0
  172. package/dist/components/Toggle.js.map +1 -0
  173. package/dist/components/ToggleGroup.d.ts +11 -0
  174. package/dist/components/ToggleGroup.d.ts.map +1 -0
  175. package/dist/components/ToggleGroup.js +70 -0
  176. package/dist/components/ToggleGroup.js.map +1 -0
  177. package/dist/components/Tooltip.d.ts +9 -0
  178. package/dist/components/Tooltip.d.ts.map +1 -0
  179. package/dist/components/Tooltip.js +51 -0
  180. package/dist/components/Tooltip.js.map +1 -0
  181. package/dist/components/VirtualizedScrollArea.d.ts +25 -0
  182. package/dist/components/VirtualizedScrollArea.d.ts.map +1 -0
  183. package/dist/components/VirtualizedScrollArea.js +80 -0
  184. package/dist/components/VirtualizedScrollArea.js.map +1 -0
  185. package/dist/components/editable-table/RowDataCells.d.ts +3 -0
  186. package/dist/components/editable-table/RowDataCells.d.ts.map +1 -0
  187. package/dist/components/editable-table/RowDataCells.js +33 -0
  188. package/dist/components/editable-table/RowDataCells.js.map +1 -0
  189. package/dist/components/editable-table/TableCell.d.ts +13 -0
  190. package/dist/components/editable-table/TableCell.d.ts.map +1 -0
  191. package/dist/components/editable-table/TableCell.js +415 -0
  192. package/dist/components/editable-table/TableCell.js.map +1 -0
  193. package/dist/components/editable-table/TableRow.d.ts +3 -0
  194. package/dist/components/editable-table/TableRow.d.ts.map +1 -0
  195. package/dist/components/editable-table/TableRow.js +163 -0
  196. package/dist/components/editable-table/TableRow.js.map +1 -0
  197. package/dist/components/editable-table/helpers.d.ts +12 -0
  198. package/dist/components/editable-table/helpers.d.ts.map +1 -0
  199. package/dist/components/editable-table/helpers.js +23 -0
  200. package/dist/components/editable-table/helpers.js.map +1 -0
  201. package/dist/components/editable-table/index.d.ts +4 -0
  202. package/dist/components/editable-table/index.d.ts.map +1 -0
  203. package/dist/components/editable-table/index.js +4 -0
  204. package/dist/components/editable-table/types.d.ts +43 -0
  205. package/dist/components/editable-table/types.d.ts.map +1 -0
  206. package/dist/components/editable-table/types.js +0 -0
  207. package/dist/components/editable-table/useEditableTableCellChange.d.ts +17 -0
  208. package/dist/components/editable-table/useEditableTableCellChange.d.ts.map +1 -0
  209. package/dist/components/editable-table/useEditableTableCellChange.js +152 -0
  210. package/dist/components/editable-table/useEditableTableCellChange.js.map +1 -0
  211. package/dist/components/editable-table/useEditableTableDnd.d.ts +18 -0
  212. package/dist/components/editable-table/useEditableTableDnd.d.ts.map +1 -0
  213. package/dist/components/editable-table/useEditableTableDnd.js +55 -0
  214. package/dist/components/editable-table/useEditableTableDnd.js.map +1 -0
  215. package/dist/components/editable-table/useEditableTableRows.d.ts +17 -0
  216. package/dist/components/editable-table/useEditableTableRows.d.ts.map +1 -0
  217. package/dist/components/editable-table/useEditableTableRows.js +108 -0
  218. package/dist/components/editable-table/useEditableTableRows.js.map +1 -0
  219. package/dist/components/index.d.ts +45 -0
  220. package/dist/components/index.d.ts.map +1 -0
  221. package/dist/components/index.js +45 -0
  222. package/dist/components/tiptap/InlineVariablePickerPopover.d.ts +24 -0
  223. package/dist/components/tiptap/InlineVariablePickerPopover.d.ts.map +1 -0
  224. package/dist/components/tiptap/InlineVariablePickerPopover.js +63 -0
  225. package/dist/components/tiptap/InlineVariablePickerPopover.js.map +1 -0
  226. package/dist/components/tiptap/InsertLinkDialog.d.ts +14 -0
  227. package/dist/components/tiptap/InsertLinkDialog.d.ts.map +1 -0
  228. package/dist/components/tiptap/InsertLinkDialog.js +145 -0
  229. package/dist/components/tiptap/InsertLinkDialog.js.map +1 -0
  230. package/dist/components/tiptap/LinkBubbleMenu.d.ts +10 -0
  231. package/dist/components/tiptap/LinkBubbleMenu.d.ts.map +1 -0
  232. package/dist/components/tiptap/LinkBubbleMenu.js +106 -0
  233. package/dist/components/tiptap/LinkBubbleMenu.js.map +1 -0
  234. package/dist/components/tiptap/LinkDropdown.d.ts +53 -0
  235. package/dist/components/tiptap/LinkDropdown.d.ts.map +1 -0
  236. package/dist/components/tiptap/LinkDropdown.js +155 -0
  237. package/dist/components/tiptap/LinkDropdown.js.map +1 -0
  238. package/dist/components/tiptap/VariableCommandList.d.ts +37 -0
  239. package/dist/components/tiptap/VariableCommandList.d.ts.map +1 -0
  240. package/dist/components/tiptap/VariableCommandList.js +166 -0
  241. package/dist/components/tiptap/VariableCommandList.js.map +1 -0
  242. package/dist/components/tiptap/VariableDropdown.d.ts +33 -0
  243. package/dist/components/tiptap/VariableDropdown.d.ts.map +1 -0
  244. package/dist/components/tiptap/VariableDropdown.js +121 -0
  245. package/dist/components/tiptap/VariableDropdown.js.map +1 -0
  246. package/dist/components/tiptap/VariablePickerContext.d.ts +38 -0
  247. package/dist/components/tiptap/VariablePickerContext.d.ts.map +1 -0
  248. package/dist/components/tiptap/VariablePickerContext.js +30 -0
  249. package/dist/components/tiptap/VariablePickerContext.js.map +1 -0
  250. package/dist/components/tiptap/VariableTag.d.ts +6 -0
  251. package/dist/components/tiptap/VariableTag.d.ts.map +1 -0
  252. package/dist/components/tiptap/VariableTag.js +153 -0
  253. package/dist/components/tiptap/VariableTag.js.map +1 -0
  254. package/dist/components/tiptap/VariableTagView.d.ts +3 -0
  255. package/dist/components/tiptap/VariableTagView.d.ts.map +1 -0
  256. package/dist/components/tiptap/VariableTagView.js +445 -0
  257. package/dist/components/tiptap/VariableTagView.js.map +1 -0
  258. package/dist/components/tiptap/VariableTransformControls.d.ts +37 -0
  259. package/dist/components/tiptap/VariableTransformControls.d.ts.map +1 -0
  260. package/dist/components/tiptap/VariableTransformControls.js +157 -0
  261. package/dist/components/tiptap/VariableTransformControls.js.map +1 -0
  262. package/dist/components/tiptap/editorConfig.d.ts +15 -0
  263. package/dist/components/tiptap/editorConfig.d.ts.map +1 -0
  264. package/dist/components/tiptap/editorConfig.js +191 -0
  265. package/dist/components/tiptap/editorConfig.js.map +1 -0
  266. package/dist/components/tiptap/useInlineVariablePicker.d.ts +34 -0
  267. package/dist/components/tiptap/useInlineVariablePicker.d.ts.map +1 -0
  268. package/dist/components/tiptap/useInlineVariablePicker.js +240 -0
  269. package/dist/components/tiptap/useInlineVariablePicker.js.map +1 -0
  270. package/dist/components/tiptap/useVariablePicker.d.ts +28 -0
  271. package/dist/components/tiptap/useVariablePicker.d.ts.map +1 -0
  272. package/dist/components/tiptap/useVariablePicker.js +122 -0
  273. package/dist/components/tiptap/useVariablePicker.js.map +1 -0
  274. package/dist/components/tiptap/variablePickerUtils.d.ts +11 -0
  275. package/dist/components/tiptap/variablePickerUtils.d.ts.map +1 -0
  276. package/dist/components/tiptap/variablePickerUtils.js +63 -0
  277. package/dist/components/tiptap/variablePickerUtils.js.map +1 -0
  278. package/dist/components/tiptap/variableSerialization.d.ts +49 -0
  279. package/dist/components/tiptap/variableSerialization.d.ts.map +1 -0
  280. package/dist/components/tiptap/variableSerialization.js +250 -0
  281. package/dist/components/tiptap/variableSerialization.js.map +1 -0
  282. package/dist/css/core.css +288 -0
  283. package/dist/css/style.css +295 -0
  284. package/dist/forms/Field.d.ts +37 -0
  285. package/dist/forms/Field.d.ts.map +1 -0
  286. package/dist/forms/Field.js +159 -0
  287. package/dist/forms/Field.js.map +1 -0
  288. package/dist/forms/SchemaFormEngine.d.ts +23 -0
  289. package/dist/forms/SchemaFormEngine.d.ts.map +1 -0
  290. package/dist/forms/SchemaFormEngine.js +444 -0
  291. package/dist/forms/SchemaFormEngine.js.map +1 -0
  292. package/dist/forms/components/FieldWrap.d.ts +11 -0
  293. package/dist/forms/components/FieldWrap.d.ts.map +1 -0
  294. package/dist/forms/components/FieldWrap.js +84 -0
  295. package/dist/forms/components/FieldWrap.js.map +1 -0
  296. package/dist/forms/components/ModalTabs.d.ts +21 -0
  297. package/dist/forms/components/ModalTabs.d.ts.map +1 -0
  298. package/dist/forms/components/ModalTabs.js +84 -0
  299. package/dist/forms/components/ModalTabs.js.map +1 -0
  300. package/dist/forms/components/index.d.ts +3 -0
  301. package/dist/forms/components/index.d.ts.map +1 -0
  302. package/dist/forms/components/index.js +3 -0
  303. package/dist/forms/contexts/VariableCategoriesContext.d.ts +17 -0
  304. package/dist/forms/contexts/VariableCategoriesContext.d.ts.map +1 -0
  305. package/dist/forms/contexts/VariableCategoriesContext.js +18 -0
  306. package/dist/forms/contexts/VariableCategoriesContext.js.map +1 -0
  307. package/dist/forms/engine/FormStateStore.d.ts +24 -0
  308. package/dist/forms/engine/FormStateStore.d.ts.map +1 -0
  309. package/dist/forms/engine/FormStateStore.js +97 -0
  310. package/dist/forms/engine/FormStateStore.js.map +1 -0
  311. package/dist/forms/engine/SchemaIndex.d.ts +33 -0
  312. package/dist/forms/engine/SchemaIndex.d.ts.map +1 -0
  313. package/dist/forms/engine/SchemaIndex.js +21 -0
  314. package/dist/forms/engine/SchemaIndex.js.map +1 -0
  315. package/dist/forms/engine/ValidationEngine.d.ts +13 -0
  316. package/dist/forms/engine/ValidationEngine.d.ts.map +1 -0
  317. package/dist/forms/engine/ValidationEngine.js +155 -0
  318. package/dist/forms/engine/ValidationEngine.js.map +1 -0
  319. package/dist/forms/engine/buildGroupedMessage.d.ts +2 -0
  320. package/dist/forms/engine/buildGroupedMessage.d.ts.map +1 -0
  321. package/dist/forms/engine/buildGroupedMessage.js +20 -0
  322. package/dist/forms/engine/buildGroupedMessage.js.map +1 -0
  323. package/dist/forms/engine/context.d.ts +60 -0
  324. package/dist/forms/engine/context.d.ts.map +1 -0
  325. package/dist/forms/engine/context.js +12 -0
  326. package/dist/forms/engine/context.js.map +1 -0
  327. package/dist/forms/engine/rules/email.d.ts +2 -0
  328. package/dist/forms/engine/rules/email.d.ts.map +1 -0
  329. package/dist/forms/engine/rules/email.js +11 -0
  330. package/dist/forms/engine/rules/email.js.map +1 -0
  331. package/dist/forms/engine/rules/emailOrVariable.d.ts +2 -0
  332. package/dist/forms/engine/rules/emailOrVariable.d.ts.map +1 -0
  333. package/dist/forms/engine/rules/emailOrVariable.js +13 -0
  334. package/dist/forms/engine/rules/emailOrVariable.js.map +1 -0
  335. package/dist/forms/engine/rules/handle.d.ts +2 -0
  336. package/dist/forms/engine/rules/handle.d.ts.map +1 -0
  337. package/dist/forms/engine/rules/handle.js +12 -0
  338. package/dist/forms/engine/rules/handle.js.map +1 -0
  339. package/dist/forms/engine/rules/index.d.ts +9 -0
  340. package/dist/forms/engine/rules/index.d.ts.map +1 -0
  341. package/dist/forms/engine/rules/index.js +35 -0
  342. package/dist/forms/engine/rules/index.js.map +1 -0
  343. package/dist/forms/engine/rules/max.d.ts +2 -0
  344. package/dist/forms/engine/rules/max.d.ts.map +1 -0
  345. package/dist/forms/engine/rules/max.js +16 -0
  346. package/dist/forms/engine/rules/max.js.map +1 -0
  347. package/dist/forms/engine/rules/min.d.ts +2 -0
  348. package/dist/forms/engine/rules/min.d.ts.map +1 -0
  349. package/dist/forms/engine/rules/min.js +16 -0
  350. package/dist/forms/engine/rules/min.js.map +1 -0
  351. package/dist/forms/engine/rules/required.d.ts +2 -0
  352. package/dist/forms/engine/rules/required.d.ts.map +1 -0
  353. package/dist/forms/engine/rules/required.js +11 -0
  354. package/dist/forms/engine/rules/required.js.map +1 -0
  355. package/dist/forms/engine/rules/uniqueHandle.d.ts +9 -0
  356. package/dist/forms/engine/rules/uniqueHandle.d.ts.map +1 -0
  357. package/dist/forms/engine/rules/uniqueHandle.js +95 -0
  358. package/dist/forms/engine/rules/uniqueHandle.js.map +1 -0
  359. package/dist/forms/engine/rules/utils.d.ts +3 -0
  360. package/dist/forms/engine/rules/utils.d.ts.map +1 -0
  361. package/dist/forms/engine/rules/utils.js +21 -0
  362. package/dist/forms/engine/rules/utils.js.map +1 -0
  363. package/dist/forms/fields/CalculationsField.d.ts +24 -0
  364. package/dist/forms/fields/CalculationsField.d.ts.map +1 -0
  365. package/dist/forms/fields/CalculationsField.js +215 -0
  366. package/dist/forms/fields/CalculationsField.js.map +1 -0
  367. package/dist/forms/fields/CalculationsToolbar.d.ts +17 -0
  368. package/dist/forms/fields/CalculationsToolbar.d.ts.map +1 -0
  369. package/dist/forms/fields/CalculationsToolbar.js +130 -0
  370. package/dist/forms/fields/CalculationsToolbar.js.map +1 -0
  371. package/dist/forms/fields/CheckboxSelectField.d.ts +19 -0
  372. package/dist/forms/fields/CheckboxSelectField.d.ts.map +1 -0
  373. package/dist/forms/fields/CheckboxSelectField.js +30 -0
  374. package/dist/forms/fields/CheckboxSelectField.js.map +1 -0
  375. package/dist/forms/fields/ColorField.d.ts +15 -0
  376. package/dist/forms/fields/ColorField.d.ts.map +1 -0
  377. package/dist/forms/fields/ColorField.js +30 -0
  378. package/dist/forms/fields/ColorField.js.map +1 -0
  379. package/dist/forms/fields/ComboboxField.d.ts +23 -0
  380. package/dist/forms/fields/ComboboxField.d.ts.map +1 -0
  381. package/dist/forms/fields/ComboboxField.js +38 -0
  382. package/dist/forms/fields/ComboboxField.js.map +1 -0
  383. package/dist/forms/fields/DateTimeField.d.ts +14 -0
  384. package/dist/forms/fields/DateTimeField.d.ts.map +1 -0
  385. package/dist/forms/fields/DateTimeField.js +53 -0
  386. package/dist/forms/fields/DateTimeField.js.map +1 -0
  387. package/dist/forms/fields/EditableTableField.d.ts +22 -0
  388. package/dist/forms/fields/EditableTableField.d.ts.map +1 -0
  389. package/dist/forms/fields/EditableTableField.js +37 -0
  390. package/dist/forms/fields/EditableTableField.js.map +1 -0
  391. package/dist/forms/fields/ElementSelectField.d.ts +20 -0
  392. package/dist/forms/fields/ElementSelectField.d.ts.map +1 -0
  393. package/dist/forms/fields/ElementSelectField.js +215 -0
  394. package/dist/forms/fields/ElementSelectField.js.map +1 -0
  395. package/dist/forms/fields/GroupField.d.ts +19 -0
  396. package/dist/forms/fields/GroupField.d.ts.map +1 -0
  397. package/dist/forms/fields/GroupField.js +50 -0
  398. package/dist/forms/fields/GroupField.js.map +1 -0
  399. package/dist/forms/fields/HandleField.d.ts +20 -0
  400. package/dist/forms/fields/HandleField.d.ts.map +1 -0
  401. package/dist/forms/fields/HandleField.js +70 -0
  402. package/dist/forms/fields/HandleField.js.map +1 -0
  403. package/dist/forms/fields/LightswitchField.d.ts +14 -0
  404. package/dist/forms/fields/LightswitchField.d.ts.map +1 -0
  405. package/dist/forms/fields/LightswitchField.js +29 -0
  406. package/dist/forms/fields/LightswitchField.js.map +1 -0
  407. package/dist/forms/fields/ListField.d.ts +17 -0
  408. package/dist/forms/fields/ListField.d.ts.map +1 -0
  409. package/dist/forms/fields/ListField.js +51 -0
  410. package/dist/forms/fields/ListField.js.map +1 -0
  411. package/dist/forms/fields/NumberField.d.ts +17 -0
  412. package/dist/forms/fields/NumberField.d.ts.map +1 -0
  413. package/dist/forms/fields/NumberField.js +33 -0
  414. package/dist/forms/fields/NumberField.js.map +1 -0
  415. package/dist/forms/fields/RadioGroupField.d.ts +25 -0
  416. package/dist/forms/fields/RadioGroupField.d.ts.map +1 -0
  417. package/dist/forms/fields/RadioGroupField.js +102 -0
  418. package/dist/forms/fields/RadioGroupField.js.map +1 -0
  419. package/dist/forms/fields/RichTextField.d.ts +23 -0
  420. package/dist/forms/fields/RichTextField.d.ts.map +1 -0
  421. package/dist/forms/fields/RichTextField.js +50 -0
  422. package/dist/forms/fields/RichTextField.js.map +1 -0
  423. package/dist/forms/fields/SelectField.d.ts +25 -0
  424. package/dist/forms/fields/SelectField.d.ts.map +1 -0
  425. package/dist/forms/fields/SelectField.js +73 -0
  426. package/dist/forms/fields/SelectField.js.map +1 -0
  427. package/dist/forms/fields/StaticTableField.d.ts +34 -0
  428. package/dist/forms/fields/StaticTableField.d.ts.map +1 -0
  429. package/dist/forms/fields/StaticTableField.js +128 -0
  430. package/dist/forms/fields/StaticTableField.js.map +1 -0
  431. package/dist/forms/fields/TextField.d.ts +16 -0
  432. package/dist/forms/fields/TextField.d.ts.map +1 -0
  433. package/dist/forms/fields/TextField.js +31 -0
  434. package/dist/forms/fields/TextField.js.map +1 -0
  435. package/dist/forms/fields/TextareaField.d.ts +17 -0
  436. package/dist/forms/fields/TextareaField.d.ts.map +1 -0
  437. package/dist/forms/fields/TextareaField.js +32 -0
  438. package/dist/forms/fields/TextareaField.js.map +1 -0
  439. package/dist/forms/fields/VariablePickerField.d.ts +21 -0
  440. package/dist/forms/fields/VariablePickerField.d.ts.map +1 -0
  441. package/dist/forms/fields/VariablePickerField.js +49 -0
  442. package/dist/forms/fields/VariablePickerField.js.map +1 -0
  443. package/dist/forms/index.d.ts +8 -0
  444. package/dist/forms/index.d.ts.map +1 -0
  445. package/dist/forms/index.js +10 -0
  446. package/dist/forms/registry.d.ts +8 -0
  447. package/dist/forms/registry.d.ts.map +1 -0
  448. package/dist/forms/registry.js +76 -0
  449. package/dist/forms/registry.js.map +1 -0
  450. package/dist/forms/store/element-store.d.ts +11 -0
  451. package/dist/forms/store/element-store.d.ts.map +1 -0
  452. package/dist/forms/store/element-store.js +41 -0
  453. package/dist/forms/store/element-store.js.map +1 -0
  454. package/dist/forms/useEditableTableFieldBinding.d.ts +13 -0
  455. package/dist/forms/useEditableTableFieldBinding.d.ts.map +1 -0
  456. package/dist/forms/useEditableTableFieldBinding.js +91 -0
  457. package/dist/forms/useEditableTableFieldBinding.js.map +1 -0
  458. package/dist/forms/useEngineField.d.ts +9 -0
  459. package/dist/forms/useEngineField.d.ts.map +1 -0
  460. package/dist/forms/useEngineField.js +32 -0
  461. package/dist/forms/useEngineField.js.map +1 -0
  462. package/dist/hooks/index.d.ts +3 -0
  463. package/dist/hooks/index.d.ts.map +1 -0
  464. package/dist/hooks/index.js +3 -0
  465. package/dist/hooks/useKeyboardShortcuts.d.ts +14 -0
  466. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  467. package/dist/hooks/useKeyboardShortcuts.js +67 -0
  468. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  469. package/dist/hooks/useTranslation.d.ts +3 -0
  470. package/dist/hooks/useTranslation.d.ts.map +1 -0
  471. package/dist/hooks/useTranslation.js +12 -0
  472. package/dist/hooks/useTranslation.js.map +1 -0
  473. package/dist/index.d.ts +2 -0
  474. package/dist/index.d.ts.map +1 -0
  475. package/dist/index.js +2 -0
  476. package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +15 -0
  477. package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -0
  478. package/dist/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +15 -0
  479. package/dist/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js.map +1 -0
  480. package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js +13 -0
  481. package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js.map +1 -0
  482. package/dist/node_modules/@babel/runtime/helpers/createClass.js +21 -0
  483. package/dist/node_modules/@babel/runtime/helpers/createClass.js.map +1 -0
  484. package/dist/node_modules/@babel/runtime/helpers/defineProperty.js +20 -0
  485. package/dist/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -0
  486. package/dist/node_modules/@babel/runtime/helpers/interopRequireDefault.js +13 -0
  487. package/dist/node_modules/@babel/runtime/helpers/interopRequireDefault.js.map +1 -0
  488. package/dist/node_modules/@babel/runtime/helpers/iterableToArray.js +13 -0
  489. package/dist/node_modules/@babel/runtime/helpers/iterableToArray.js.map +1 -0
  490. package/dist/node_modules/@babel/runtime/helpers/nonIterableSpread.js +13 -0
  491. package/dist/node_modules/@babel/runtime/helpers/nonIterableSpread.js.map +1 -0
  492. package/dist/node_modules/@babel/runtime/helpers/toConsumableArray.js +21 -0
  493. package/dist/node_modules/@babel/runtime/helpers/toConsumableArray.js.map +1 -0
  494. package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js +22 -0
  495. package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -0
  496. package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js +18 -0
  497. package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -0
  498. package/dist/node_modules/@babel/runtime/helpers/typeof.js +18 -0
  499. package/dist/node_modules/@babel/runtime/helpers/typeof.js.map +1 -0
  500. package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +19 -0
  501. package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -0
  502. package/dist/node_modules/jexl/dist/Expression.js +84 -0
  503. package/dist/node_modules/jexl/dist/Expression.js.map +1 -0
  504. package/dist/node_modules/jexl/dist/Jexl.js +165 -0
  505. package/dist/node_modules/jexl/dist/Jexl.js.map +1 -0
  506. package/dist/node_modules/jexl/dist/Lexer.js +152 -0
  507. package/dist/node_modules/jexl/dist/Lexer.js.map +1 -0
  508. package/dist/node_modules/jexl/dist/PromiseSync.js +87 -0
  509. package/dist/node_modules/jexl/dist/PromiseSync.js.map +1 -0
  510. package/dist/node_modules/jexl/dist/evaluator/Evaluator.js +98 -0
  511. package/dist/node_modules/jexl/dist/evaluator/Evaluator.js.map +1 -0
  512. package/dist/node_modules/jexl/dist/evaluator/handlers.js +162 -0
  513. package/dist/node_modules/jexl/dist/evaluator/handlers.js.map +1 -0
  514. package/dist/node_modules/jexl/dist/grammar.js +195 -0
  515. package/dist/node_modules/jexl/dist/grammar.js.map +1 -0
  516. package/dist/node_modules/jexl/dist/parser/Parser.js +135 -0
  517. package/dist/node_modules/jexl/dist/parser/Parser.js.map +1 -0
  518. package/dist/node_modules/jexl/dist/parser/handlers.js +205 -0
  519. package/dist/node_modules/jexl/dist/parser/handlers.js.map +1 -0
  520. package/dist/node_modules/jexl/dist/parser/states.js +158 -0
  521. package/dist/node_modules/jexl/dist/parser/states.js.map +1 -0
  522. package/dist/types/global.d.d.ts +1 -0
  523. package/dist/types/global.d.js +0 -0
  524. package/dist/utils/classes.d.ts +18 -0
  525. package/dist/utils/classes.d.ts.map +1 -0
  526. package/dist/utils/classes.js +25 -0
  527. package/dist/utils/classes.js.map +1 -0
  528. package/dist/utils/config.d.ts +14 -0
  529. package/dist/utils/config.d.ts.map +1 -0
  530. package/dist/utils/config.js +16 -0
  531. package/dist/utils/config.js.map +1 -0
  532. package/dist/utils/craftHostBridge.d.ts +16 -0
  533. package/dist/utils/craftHostBridge.d.ts.map +1 -0
  534. package/dist/utils/craftHostBridge.js +28 -0
  535. package/dist/utils/craftHostBridge.js.map +1 -0
  536. package/dist/utils/handle.d.ts +10 -0
  537. package/dist/utils/handle.d.ts.map +1 -0
  538. package/dist/utils/handle.js +51 -0
  539. package/dist/utils/handle.js.map +1 -0
  540. package/dist/utils/hostBridge.d.ts +40 -0
  541. package/dist/utils/hostBridge.d.ts.map +1 -0
  542. package/dist/utils/hostBridge.js +35 -0
  543. package/dist/utils/hostBridge.js.map +1 -0
  544. package/dist/utils/index.d.ts +18 -0
  545. package/dist/utils/index.d.ts.map +1 -0
  546. package/dist/utils/index.js +66 -0
  547. package/dist/utils/index.js.map +1 -0
  548. package/dist/utils/portal.d.ts +17 -0
  549. package/dist/utils/portal.d.ts.map +1 -0
  550. package/dist/utils/portal.js +51 -0
  551. package/dist/utils/portal.js.map +1 -0
  552. package/dist/utils/schema.d.ts +17 -0
  553. package/dist/utils/schema.d.ts.map +1 -0
  554. package/dist/utils/schema.js +56 -0
  555. package/dist/utils/schema.js.map +1 -0
  556. package/dist/utils/schemaFieldNames.d.ts +2 -0
  557. package/dist/utils/schemaFieldNames.d.ts.map +1 -0
  558. package/dist/utils/schemaFieldNames.js +16 -0
  559. package/dist/utils/schemaFieldNames.js.map +1 -0
  560. package/dist/utils/schemaIndex.d.ts +6 -0
  561. package/dist/utils/schemaIndex.d.ts.map +1 -0
  562. package/dist/utils/schemaIndex.js +31 -0
  563. package/dist/utils/schemaIndex.js.map +1 -0
  564. package/dist/utils/schemaIndexCache.d.ts +6 -0
  565. package/dist/utils/schemaIndexCache.d.ts.map +1 -0
  566. package/dist/utils/schemaIndexCache.js +32 -0
  567. package/dist/utils/schemaIndexCache.js.map +1 -0
  568. package/dist/utils/schemaNormalize.d.ts +13 -0
  569. package/dist/utils/schemaNormalize.d.ts.map +1 -0
  570. package/dist/utils/schemaNormalize.js +17 -0
  571. package/dist/utils/schemaNormalize.js.map +1 -0
  572. package/dist/utils/store.d.ts +7 -0
  573. package/dist/utils/store.d.ts.map +1 -0
  574. package/dist/utils/store.js +6 -0
  575. package/dist/utils/store.js.map +1 -0
  576. package/dist/utils/timeOptions.d.ts +6 -0
  577. package/dist/utils/timeOptions.d.ts.map +1 -0
  578. package/dist/utils/timeOptions.js +42 -0
  579. package/dist/utils/timeOptions.js.map +1 -0
  580. package/dist/utils/tiptap.d.ts +13 -0
  581. package/dist/utils/tiptap.d.ts.map +1 -0
  582. package/dist/utils/tiptap.js +39 -0
  583. package/dist/utils/tiptap.js.map +1 -0
  584. package/dist/utils/translation.d.ts +5 -0
  585. package/dist/utils/translation.d.ts.map +1 -0
  586. package/dist/utils/translation.js +21 -0
  587. package/dist/utils/translation.js.map +1 -0
  588. package/dist/utils/validation.d.ts +4 -0
  589. package/dist/utils/validation.d.ts.map +1 -0
  590. package/dist/utils/validation.js +253 -0
  591. package/dist/utils/validation.js.map +1 -0
  592. package/package.json +167 -0
  593. package/vite-dev.mjs +56 -0
@@ -0,0 +1,111 @@
1
+ import { cn } from "../utils/classes.js";
2
+ import "../utils/index.js";
3
+ import { Input } from "./Input.js";
4
+ import { Textarea } from "./Textarea.js";
5
+ import "./index.js";
6
+ import { Button } from "./Button.js";
7
+ import { cva } from "class-variance-authority";
8
+ import { jsx } from "react/jsx-runtime";
9
+ //#region src/components/InputGroup.tsx
10
+ function InputGroup({ className, ...props }) {
11
+ return /* @__PURE__ */ jsx("div", {
12
+ "data-slot": "input-group",
13
+ role: "group",
14
+ className: cn("group/input-group outline-none relative flex w-full min-w-0 items-center", "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col", "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col", "has-[>[data-align=block-end]]:[&>input]:pt-3", "has-[>[data-align=block-start]]:[&>input]:pb-3", "has-[>[data-align=inline-end]]:[&>input]:pr-1.5", "has-[>[data-align=inline-start]]:[&>input]:pl-1.5", "rounded-sm", "border border-[rgba(96,125,159,0.4)]", "bg-[rgb(251,252,254)] bg-clip-padding", "has-[[data-slot=input-group-control]:focus-visible]:border-sky-600", "has-[[data-slot=field-control]:focus-visible]:border-sky-600", "has-[[data-slot=input-group-control]:focus-visible]:shadow-[0_0_0_1px_var(--color-sky-600),0_0_4px_0_hsl(from_var(--color-sky-600)_h_s_l/0.7)]", "has-[[data-slot=field-control]:focus-visible]:shadow-[0_0_0_1px_var(--color-sky-600),0_0_4px_0_hsl(from_var(--color-sky-600)_h_s_l/0.7)]", "has-[[data-slot][aria-invalid=true]]:border-rose-600!", "has-disabled:opacity-50", className),
15
+ ...props
16
+ });
17
+ }
18
+ var inputGroupAddonVariants = cva([
19
+ "flex h-auto items-center justify-center gap-2",
20
+ "px-2 text-sm",
21
+ "cursor-text select-none",
22
+ "group-data-[disabled=true]/input-group:opacity-50",
23
+ "[&>svg:not([class*='size-'])]:size-3",
24
+ "[&>kbd]:rounded-[calc(var(--radius)-5px)]"
25
+ ].join(" "), {
26
+ variants: { align: {
27
+ "inline-start": [
28
+ "order-first pl-2",
29
+ "has-[>button]:ml-[-0.3rem]",
30
+ "has-[>kbd]:ml-[-0.15rem]"
31
+ ].join(" "),
32
+ "inline-end": [
33
+ "order-last pr-2",
34
+ "has-[>button]:mr-[-0.3rem]",
35
+ "has-[>kbd]:mr-[-0.15rem]"
36
+ ].join(" "),
37
+ "block-start": [
38
+ "order-first w-full justify-start",
39
+ "px-2.5 pt-2",
40
+ "group-has-[>input]/input-group:pt-2",
41
+ "[.border-b]:pb-2"
42
+ ].join(" "),
43
+ "block-end": [
44
+ "order-last w-full justify-start",
45
+ "px-2.5 pb-2",
46
+ "group-has-[>input]/input-group:pb-2",
47
+ "[.border-t]:pt-2"
48
+ ].join(" ")
49
+ } },
50
+ defaultVariants: { align: "inline-start" }
51
+ });
52
+ function InputGroupAddon({ className, align = "inline-start", ...props }) {
53
+ return /* @__PURE__ */ jsx("div", {
54
+ role: "group",
55
+ "data-slot": "input-group-addon",
56
+ "data-align": align,
57
+ className: cn(inputGroupAddonVariants({ align }), className),
58
+ onClick: (e) => {
59
+ if (e.target.closest("button")) return;
60
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
61
+ },
62
+ ...props
63
+ });
64
+ }
65
+ var inputGroupButtonVariants = cva([
66
+ "flex items-center gap-2",
67
+ "text-gray-500 text-sm",
68
+ "shadow-none rounded-sm",
69
+ "hover:bg-slate-100"
70
+ ].join(" "), {
71
+ variants: { size: {
72
+ xs: "",
73
+ sm: "",
74
+ "icon-xs": "size-6 [&>svg]:size-3.5 p-0 has-[>svg]:p-0",
75
+ "icon-sm": ""
76
+ } },
77
+ defaultVariants: { size: "xs" }
78
+ });
79
+ function InputGroupButton({ className, type = "button", variant = "none", size = "xs", ...props }) {
80
+ return /* @__PURE__ */ jsx(Button, {
81
+ type,
82
+ "data-size": size,
83
+ variant,
84
+ className: cn(inputGroupButtonVariants({ size }), className),
85
+ ...props
86
+ });
87
+ }
88
+ function InputGroupText({ className, ...props }) {
89
+ return /* @__PURE__ */ jsx("span", {
90
+ className: cn("flex items-center gap-2 text-sm", "text-gray-500", "[&_svg:not([class*='size-'])]:size-3", "[&_svg]:pointer-events-none", className),
91
+ ...props
92
+ });
93
+ }
94
+ function InputGroupInput({ className, ...props }) {
95
+ return /* @__PURE__ */ jsx(Input, {
96
+ "data-slot": "input-group-control",
97
+ className: cn("flex-1", "rounded-none border-0", "bg-transparent", "shadow-none!", "disabled:bg-transparent", className),
98
+ ...props
99
+ });
100
+ }
101
+ function InputGroupTextarea({ className, ...props }) {
102
+ return /* @__PURE__ */ jsx(Textarea, {
103
+ "data-slot": "input-group-control",
104
+ className: cn("flex-1", "rounded-none border-0 py-2", "resize-none", "bg-transparent", "shadow-none!", "disabled:bg-transparent", className),
105
+ ...props
106
+ });
107
+ }
108
+ //#endregion
109
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
110
+
111
+ //# sourceMappingURL=InputGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputGroup.js","names":[],"sources":["../../src/components/InputGroup.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\nimport { Button } from '@verbb/plugin-kit-react/components';\nimport { Input } from '@verbb/plugin-kit-react/components';\nimport { Textarea } from '@verbb/plugin-kit-react/components';\n\nfunction InputGroup({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n // Layout\n 'group/input-group outline-none relative flex w-full min-w-0 items-center',\n 'has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col',\n 'has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col',\n 'has-[>[data-align=block-end]]:[&>input]:pt-3',\n 'has-[>[data-align=block-start]]:[&>input]:pb-3',\n 'has-[>[data-align=inline-end]]:[&>input]:pr-1.5',\n 'has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n\n // Theme\n 'rounded-sm',\n 'border border-[rgba(96,125,159,0.4)]',\n 'bg-[rgb(251,252,254)] bg-clip-padding',\n\n // Focus and validation\n 'has-[[data-slot=input-group-control]:focus-visible]:border-sky-600',\n 'has-[[data-slot=field-control]:focus-visible]:border-sky-600',\n 'has-[[data-slot=input-group-control]:focus-visible]:shadow-[0_0_0_1px_var(--color-sky-600),0_0_4px_0_hsl(from_var(--color-sky-600)_h_s_l/0.7)]',\n 'has-[[data-slot=field-control]:focus-visible]:shadow-[0_0_0_1px_var(--color-sky-600),0_0_4px_0_hsl(from_var(--color-sky-600)_h_s_l/0.7)]',\n 'has-[[data-slot][aria-invalid=true]]:border-rose-600!',\n\n // Disabled\n 'has-disabled:opacity-50',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n [\n // Layout\n 'flex h-auto items-center justify-center gap-2',\n 'px-2 text-sm',\n\n // Interaction\n 'cursor-text select-none',\n\n // Disabled\n 'group-data-[disabled=true]/input-group:opacity-50',\n\n // Children\n \"[&>svg:not([class*='size-'])]:size-3\",\n '[&>kbd]:rounded-[calc(var(--radius)-5px)]',\n ].join(' '),\n {\n variants: {\n align: {\n 'inline-start': [\n // Layout\n 'order-first pl-2',\n\n // Child offsets\n 'has-[>button]:ml-[-0.3rem]',\n 'has-[>kbd]:ml-[-0.15rem]',\n ].join(' '),\n 'inline-end': [\n // Layout\n 'order-last pr-2',\n\n // Child offsets\n 'has-[>button]:mr-[-0.3rem]',\n 'has-[>kbd]:mr-[-0.15rem]',\n ].join(' '),\n 'block-start': [\n // Layout\n 'order-first w-full justify-start',\n 'px-2.5 pt-2',\n\n // State\n 'group-has-[>input]/input-group:pt-2',\n '[.border-b]:pb-2',\n ].join(' '),\n 'block-end': [\n // Layout\n 'order-last w-full justify-start',\n 'px-2.5 pb-2',\n\n // State\n 'group-has-[>input]/input-group:pb-2',\n '[.border-t]:pt-2',\n ].join(' '),\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n [\n // Layout\n 'flex items-center gap-2',\n 'text-gray-500 text-sm',\n\n // Theme\n 'shadow-none rounded-sm',\n\n 'hover:bg-slate-100',\n ].join(' '),\n {\n variants: {\n size: {\n // xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3\",\n xs: '',\n sm: '',\n 'icon-xs': 'size-6 [&>svg]:size-3.5 p-0 has-[>svg]:p-0',\n 'icon-sm': '',\n // 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'none',\n size = 'xs',\n ...props\n}: Omit<ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: 'button' | 'submit' | 'reset'\n disabled?: boolean\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n // Layout\n 'flex items-center gap-2 text-sm',\n\n // Theme\n 'text-gray-500',\n\n // Icons\n \"[&_svg:not([class*='size-'])]:size-3\",\n '[&_svg]:pointer-events-none',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: Omit<ComponentProps<'input'>, 'size' | 'width'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n // Layout\n 'flex-1',\n 'rounded-none border-0',\n\n // Theme\n 'bg-transparent',\n 'shadow-none!',\n\n // Disabled\n 'disabled:bg-transparent',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n // Layout\n 'flex-1',\n 'rounded-none border-0 py-2',\n 'resize-none',\n\n // Theme\n 'bg-transparent',\n 'shadow-none!',\n\n // Disabled\n 'disabled:bg-transparent',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;AAQA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAgC;AAChE,QACI,oBAAC,OAAD;EACI,aAAU;EACV,MAAK;EACL,WAAW,GAEP,4EACA,+EACA,mFACA,gDACA,kDACA,mDACA,qDAGA,cACA,wCACA,yCAGA,sEACA,gEACA,kJACA,4IACA,yDAGA,2BAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,IAAM,0BAA0B,IAC5B;CAEI;CACA;CAGA;CAGA;CAGA;CACA;CACH,CAAC,KAAK,IAAI,EACX;CACI,UAAU,EACN,OAAO;EACH,gBAAgB;GAEZ;GAGA;GACA;GACH,CAAC,KAAK,IAAI;EACX,cAAc;GAEV;GAGA;GACA;GACH,CAAC,KAAK,IAAI;EACX,eAAe;GAEX;GACA;GAGA;GACA;GACH,CAAC,KAAK,IAAI;EACX,aAAa;GAET;GACA;GAGA;GACA;GACH,CAAC,KAAK,IAAI;EACd,EACJ;CACD,iBAAiB,EACb,OAAO,gBACV;CACJ,CACJ;AAED,SAAS,gBAAgB,EACrB,WACA,QAAQ,gBACR,GAAG,SACkE;AACrE,QACI,oBAAC,OAAD;EACI,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,GAAG,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,MAAM;AACZ,OAAK,EAAE,OAAuB,QAAQ,SAAS,CAC3C;AAEJ,KAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAElE,GAAI;EACN,CAAA;;AAIV,IAAM,2BAA2B,IAC7B;CAEI;CACA;CAGA;CAEA;CACH,CAAC,KAAK,IAAI,EACX;CACI,UAAU,EACN,MAAM;EAEF,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;EAEd,EACJ;CACD,iBAAiB,EACb,MAAM,MACT;CACJ,CACJ;AAED,SAAS,iBAAiB,EACtB,WACA,OAAO,UACP,UAAU,QACV,OAAO,MACP,GAAG,SAKA;AACH,QACI,oBAAC,QAAD;EACU;EACN,aAAW;EACF;EACT,WAAW,GAAG,yBAAyB,EAAE,MAAM,CAAC,EAAE,UAAU;EAC5D,GAAI;EACN,CAAA;;AAIV,SAAS,eAAe,EAAE,WAAW,GAAG,SAAiC;AACrE,QACI,oBAAC,QAAD;EACI,WAAW,GAEP,mCAGA,iBAGA,wCACA,+BAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,gBAAgB,EACrB,WACA,GAAG,SAC6C;AAChD,QACI,oBAAC,OAAD;EACI,aAAU;EACV,WAAW,GAEP,UACA,yBAGA,kBACA,gBAGA,2BAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,mBAAmB,EACxB,WACA,GAAG,SACwB;AAC3B,QACI,oBAAC,UAAD;EACI,aAAU;EACV,WAAW,GAEP,UACA,8BACA,eAGA,kBACA,gBAGA,2BAEA,UACH;EACD,GAAI;EACN,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ComponentProps } from 'react';
2
+ declare function Label({ className, ...props }: ComponentProps<'label'>): import("react/jsx-runtime").JSX.Element;
3
+ export { Label };
4
+ //# sourceMappingURL=Label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../src/components/Label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAIvC,iBAAS,KAAK,CAAC,EACX,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,CAAC,2CAQzB;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { cn } from "../utils/classes.js";
2
+ import "../utils/index.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/Label.tsx
5
+ function Label({ className, ...props }) {
6
+ return /* @__PURE__ */ jsx("label", {
7
+ "data-slot": "label",
8
+ className: cn("text-sm font-bold leading-none", className),
9
+ ...props
10
+ });
11
+ }
12
+ //#endregion
13
+ export { Label };
14
+
15
+ //# sourceMappingURL=Label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label.js","names":[],"sources":["../../src/components/Label.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\nfunction Label({\n className,\n ...props\n}: ComponentProps<'label'>) {\n return (\n <label\n data-slot=\"label\"\n className={cn('text-sm font-bold leading-none', className)}\n {...props}\n />\n );\n};\n\nexport { Label };\n"],"mappings":";;;;AAIA,SAAS,MAAM,EACX,WACA,GAAG,SACqB;AACxB,QACI,oBAAC,SAAD;EACI,aAAU;EACV,WAAW,GAAG,kCAAkC,UAAU;EAC1D,GAAI;EACN,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { ComponentProps } from 'react';
2
+ import { Switch as SwitchPrimitive } from '@base-ui/react/switch';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ declare const lightswitchVariants: (props?: ({
5
+ size?: "default" | "xs" | "sm" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ declare function Lightswitch({ className, size, ...props }: ComponentProps<typeof SwitchPrimitive.Root> & VariantProps<typeof lightswitchVariants>): import("react/jsx-runtime").JSX.Element;
8
+ export { Lightswitch };
9
+ //# sourceMappingURL=Lightswitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lightswitch.d.ts","sourceRoot":"","sources":["../../src/components/Lightswitch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,mBAAmB;;8EAWvB,CAAC;AA4BH,iBAAS,WAAW,CAAC,EACjB,SAAS,EACT,IAAgB,EAChB,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,2CAmExF;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { cn } from "../utils/classes.js";
2
+ import "../utils/index.js";
3
+ import { cva } from "class-variance-authority";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Switch } from "@base-ui/react/switch";
6
+ //#region src/components/Lightswitch.tsx
7
+ var lightswitchVariants = cva("", {
8
+ variants: { size: {
9
+ xs: "h-[16px] w-[24px] rounded-[8px]",
10
+ sm: "h-[18px] w-[28px] rounded-[9px]",
11
+ default: "h-[22px] w-[34px] rounded-[11px]"
12
+ } },
13
+ defaultVariants: { size: "default" }
14
+ });
15
+ var lightswitchThumbVariants = cva("", {
16
+ variants: { size: {
17
+ xs: "size-[12px] translate-x-[2px] data-checked:translate-x-[calc(100%-2px)]",
18
+ sm: "size-[14px] translate-x-[2px] data-checked:translate-x-[calc(100%-2px)]",
19
+ default: "size-[18px] translate-x-[2px] data-checked:translate-x-[calc(100%-4px)]"
20
+ } },
21
+ defaultVariants: { size: "default" }
22
+ });
23
+ var lightswitchIconVariants = cva("", {
24
+ variants: { size: {
25
+ xs: "hidden",
26
+ sm: "size-[10px]",
27
+ default: "size-[14px]"
28
+ } },
29
+ defaultVariants: { size: "default" }
30
+ });
31
+ function Lightswitch({ className, size = "default", ...props }) {
32
+ return /* @__PURE__ */ jsx(Switch.Root, {
33
+ "data-slot": "switch",
34
+ className: cn("peer outline-none inline-flex shrink-0 items-center cursor-pointer select-none", lightswitchVariants({ size }), "shadow-[inset_0_0_0_1px_rgba(96,126,160,0.8)]", "bg-gray-200", "data-checked:bg-teal-550", "data-checked:shadow-[inset_0_0_0_1px_#008779]", "focus-visible:!shadow-[0_0_0_1px_#ffffff,0_0_0_3px_var(--color-sky-600),0_0_6px_1px_hsl(from_var(--color-sky-600)_h_s_l/0.8)]", "aria-invalid:!shadow-[0_0_0_1px_#ffffff,0_0_0_2.5px_var(--color-rose-600)]", "aria-invalid:focus-visible:!shadow-[0_0_0_1px_#ffffff,0_0_0_3px_var(--color-rose-600),0_0_6px_1px_hsl(from_var(--color-rose-600)_h_s_l/0.8)]", "disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50", className),
35
+ ...props,
36
+ children: /* @__PURE__ */ jsx(Switch.Thumb, {
37
+ "data-slot": "switch-thumb",
38
+ className: cn("pointer-events-none block rounded-full", "flex items-center justify-center", lightswitchThumbVariants({ size }), "bg-white", "shadow-[inset_0_0_0_1px_rgba(96,126,160,0.8)]", "transition-transform", "data-checked:shadow-[inset_0_0_0_1px_#008779]"),
39
+ children: /* @__PURE__ */ jsx("svg", {
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ role: "img",
42
+ "aria-hidden": "true",
43
+ viewBox: "0 0 640 640",
44
+ className: cn(lightswitchIconVariants({ size }), "text-teal-550", "opacity-0", "translate-y-[1px]", "transition-opacity", "[[data-checked]_&]:opacity-100"),
45
+ children: /* @__PURE__ */ jsx("path", {
46
+ fill: "currentColor",
47
+ d: "M557.5 192L534.9 214.6L278.9 470.6C266.4 483.1 246.1 483.1 233.6 470.6L105.6 342.6L83 320L128.3 274.7C129.6 276 172.3 318.7 256.3 402.7L489.7 169.3L512.3 146.7L557.6 192z"
48
+ })
49
+ })
50
+ })
51
+ });
52
+ }
53
+ //#endregion
54
+ export { Lightswitch };
55
+
56
+ //# sourceMappingURL=Lightswitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lightswitch.js","names":[],"sources":["../../src/components/Lightswitch.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\nimport { Switch as SwitchPrimitive } from '@base-ui/react/switch';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\nconst lightswitchVariants = cva('', {\n variants: {\n size: {\n xs: 'h-[16px] w-[24px] rounded-[8px]',\n sm: 'h-[18px] w-[28px] rounded-[9px]',\n default: 'h-[22px] w-[34px] rounded-[11px]',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nconst lightswitchThumbVariants = cva('', {\n variants: {\n size: {\n xs: 'size-[12px] translate-x-[2px] data-checked:translate-x-[calc(100%-2px)]',\n sm: 'size-[14px] translate-x-[2px] data-checked:translate-x-[calc(100%-2px)]',\n default: 'size-[18px] translate-x-[2px] data-checked:translate-x-[calc(100%-4px)]',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nconst lightswitchIconVariants = cva('', {\n variants: {\n size: {\n xs: 'hidden',\n sm: 'size-[10px]',\n default: 'size-[14px]',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nfunction Lightswitch({\n className,\n size = 'default',\n ...props\n}: ComponentProps<typeof SwitchPrimitive.Root> & VariantProps<typeof lightswitchVariants>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n // Reset\n 'peer outline-none inline-flex shrink-0 items-center cursor-pointer select-none',\n\n // Theme\n lightswitchVariants({ size }),\n 'shadow-[inset_0_0_0_1px_rgba(96,126,160,0.8)]',\n 'bg-gray-200',\n\n // State\n 'data-checked:bg-teal-550',\n 'data-checked:shadow-[inset_0_0_0_1px_#008779]',\n\n // Hover & Focus\n 'focus-visible:!shadow-[0_0_0_1px_#ffffff,0_0_0_3px_var(--color-sky-600),0_0_6px_1px_hsl(from_var(--color-sky-600)_h_s_l/0.8)]',\n 'aria-invalid:!shadow-[0_0_0_1px_#ffffff,0_0_0_2.5px_var(--color-rose-600)]',\n 'aria-invalid:focus-visible:!shadow-[0_0_0_1px_#ffffff,0_0_0_3px_var(--color-rose-600),0_0_6px_1px_hsl(from_var(--color-rose-600)_h_s_l/0.8)]',\n\n // Disabled styles\n 'disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50',\n\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n // Reset\n 'pointer-events-none block rounded-full',\n 'flex items-center justify-center',\n\n // Theme\n lightswitchThumbVariants({ size }),\n 'bg-white',\n 'shadow-[inset_0_0_0_1px_rgba(96,126,160,0.8)]',\n\n // Transitions and state changes\n 'transition-transform',\n 'data-checked:shadow-[inset_0_0_0_1px_#008779]',\n )}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-hidden=\"true\"\n viewBox=\"0 0 640 640\"\n className={cn(\n lightswitchIconVariants({ size }),\n 'text-teal-550',\n 'opacity-0',\n 'translate-y-[1px]',\n\n // Transitions and state changes\n 'transition-opacity',\n '[[data-checked]_&]:opacity-100',\n )}\n >\n <path fill=\"currentColor\" d=\"M557.5 192L534.9 214.6L278.9 470.6C266.4 483.1 246.1 483.1 233.6 470.6L105.6 342.6L83 320L128.3 274.7C129.6 276 172.3 318.7 256.3 402.7L489.7 169.3L512.3 146.7L557.6 192z\" />\n </svg>\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n );\n};\n\nexport { Lightswitch };\n"],"mappings":";;;;;;AAMA,IAAM,sBAAsB,IAAI,IAAI;CAChC,UAAU,EACN,MAAM;EACF,IAAI;EACJ,IAAI;EACJ,SAAS;EACZ,EACJ;CACD,iBAAiB,EACb,MAAM,WACT;CACJ,CAAC;AAEF,IAAM,2BAA2B,IAAI,IAAI;CACrC,UAAU,EACN,MAAM;EACF,IAAI;EACJ,IAAI;EACJ,SAAS;EACZ,EACJ;CACD,iBAAiB,EACb,MAAM,WACT;CACJ,CAAC;AAEF,IAAM,0BAA0B,IAAI,IAAI;CACpC,UAAU,EACN,MAAM;EACF,IAAI;EACJ,IAAI;EACJ,SAAS;EACZ,EACJ;CACD,iBAAiB,EACb,MAAM,WACT;CACJ,CAAC;AAEF,SAAS,YAAY,EACjB,WACA,OAAO,WACP,GAAG,SACoF;AACvF,QACI,oBAAC,OAAgB,MAAjB;EACI,aAAU;EACV,WAAW,GAEP,kFAGA,oBAAoB,EAAE,MAAM,CAAC,EAC7B,iDACA,eAGA,4BACA,iDAGA,iIACA,8EACA,gJAGA,6GAEA,UACH;EACD,GAAI;YAEJ,oBAAC,OAAgB,OAAjB;GACI,aAAU;GACV,WAAW,GAEP,0CACA,oCAGA,yBAAyB,EAAE,MAAM,CAAC,EAClC,YACA,iDAGA,wBACA,gDACH;aAED,oBAAC,OAAD;IACI,OAAM;IACN,MAAK;IACL,eAAY;IACZ,SAAQ;IACR,WAAW,GACP,wBAAwB,EAAE,MAAM,CAAC,EACjC,iBACA,aACA,qBAGA,sBACA,iCACH;cAED,oBAAC,QAAD;KAAM,MAAK;KAAe,GAAE;KAA+K,CAAA;IACzM,CAAA;GACc,CAAA;EACL,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { ComponentProps } from 'react';
2
+ type MarkdownProps = Omit<ComponentProps<'div'>, 'dangerouslySetInnerHTML' | 'children'> & {
3
+ content: string;
4
+ /** When true (default), only inline markdown (bold, italic, links) is rendered. When false, full block markdown (headers, lists, etc.) is supported. */
5
+ inline?: boolean;
6
+ /** The HTML element to render as. Defaults to 'div' for block, 'span' for inline. */
7
+ as?: 'div' | 'span' | 'p';
8
+ };
9
+ export declare const Markdown: import('react').ForwardRefExoticComponent<Omit<MarkdownProps, "ref"> & import('react').RefAttributes<HTMLDivElement | HTMLParagraphElement | HTMLSpanElement>>;
10
+ export {};
11
+ //# sourceMappingURL=Markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/components/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,OAAO,CAAC;AAIlE,KAAK,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,yBAAyB,GAAG,UAAU,CAAC,GAAG;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,wJAAwJ;IACxJ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,QAAQ,gKA6DpB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { cn } from "../utils/classes.js";
2
+ import { utils_exports } from "../utils/index.js";
3
+ import { forwardRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/Markdown.tsx
6
+ var Markdown = forwardRef(({ content, inline = true, as, className, ...props }, ref) => {
7
+ let html = "";
8
+ if (content) html = inline ? (0, utils_exports.renderInlineMarkdown)(content) : (0, utils_exports.renderMarkdown)(content);
9
+ const Component = as ?? (inline ? "span" : "div");
10
+ if (!html) return null;
11
+ if (Component === "span") return /* @__PURE__ */ jsx("span", {
12
+ ref,
13
+ className: cn([
14
+ "[&_a]:text-blue-500 [&_a]:hover:underline",
15
+ "[&_code]:rounded [&_code]:border [&_code]:border-slate-200 [&_code]:bg-slate-150 [&_code]:px-[3px] [&_code]:py-[1px] [&_code]:font-mono [&_code]:text-[0.85em] [&_code]:text-gray-700",
16
+ className
17
+ ]),
18
+ dangerouslySetInnerHTML: { __html: html },
19
+ ...props
20
+ });
21
+ if (Component === "p") return /* @__PURE__ */ jsx("p", {
22
+ ref,
23
+ className: cn([
24
+ "[&_a]:text-blue-500 [&_a]:hover:underline",
25
+ "[&_code]:rounded [&_code]:border [&_code]:border-slate-200 [&_code]:bg-slate-150 [&_code]:px-[3px] [&_code]:py-[1px] [&_code]:font-mono [&_code]:text-[0.85em] [&_code]:text-gray-700",
26
+ className
27
+ ]),
28
+ dangerouslySetInnerHTML: { __html: html },
29
+ ...props
30
+ });
31
+ return /* @__PURE__ */ jsx("div", {
32
+ ref,
33
+ className: cn([
34
+ "[&_a]:text-blue-500 [&_a]:hover:underline",
35
+ "[&_code]:rounded [&_code]:border [&_code]:border-slate-200 [&_code]:bg-slate-150 [&_code]:px-[3px] [&_code]:py-[1px] [&_code]:font-mono [&_code]:text-[0.85em] [&_code]:text-gray-700",
36
+ className
37
+ ]),
38
+ dangerouslySetInnerHTML: { __html: html },
39
+ ...props
40
+ });
41
+ });
42
+ Markdown.displayName = "Markdown";
43
+ //#endregion
44
+ export { Markdown };
45
+
46
+ //# sourceMappingURL=Markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.js","names":[],"sources":["../../src/components/Markdown.tsx"],"sourcesContent":["import { type ComponentProps, type Ref, forwardRef } from 'react';\nimport { renderMarkdown, renderInlineMarkdown } from '@verbb/plugin-kit-react/utils';\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\ntype MarkdownProps = Omit<ComponentProps<'div'>, 'dangerouslySetInnerHTML' | 'children'> & {\n content: string;\n /** When true (default), only inline markdown (bold, italic, links) is rendered. When false, full block markdown (headers, lists, etc.) is supported. */\n inline?: boolean;\n /** The HTML element to render as. Defaults to 'div' for block, 'span' for inline. */\n as?: 'div' | 'span' | 'p';\n};\n\nexport const Markdown = forwardRef<HTMLDivElement | HTMLSpanElement | HTMLParagraphElement, MarkdownProps>(\n ({\n content, inline = true, as, className, ...props\n }, ref) => {\n let html = '';\n if (content) {\n html = inline ? renderInlineMarkdown(content) : renderMarkdown(content);\n }\n\n const Component = as ?? (inline ? 'span' : 'div');\n\n if (!html) {\n return null;\n }\n\n if (Component === 'span') {\n return (\n <span\n ref={ref as Ref<HTMLSpanElement>}\n className={cn([\n '[&_a]:text-blue-500 [&_a]:hover:underline',\n '[&_code]:rounded [&_code]:border [&_code]:border-slate-200 [&_code]:bg-slate-150 [&_code]:px-[3px] [&_code]:py-[1px] [&_code]:font-mono [&_code]:text-[0.85em] [&_code]:text-gray-700',\n\n className,\n ])}\n dangerouslySetInnerHTML={{ __html: html }}\n {...props}\n />\n );\n }\n\n if (Component === 'p') {\n return (\n <p\n ref={ref as Ref<HTMLParagraphElement>}\n className={cn([\n '[&_a]:text-blue-500 [&_a]:hover:underline',\n '[&_code]:rounded [&_code]:border [&_code]:border-slate-200 [&_code]:bg-slate-150 [&_code]:px-[3px] [&_code]:py-[1px] [&_code]:font-mono [&_code]:text-[0.85em] [&_code]:text-gray-700',\n\n className,\n ])}\n dangerouslySetInnerHTML={{ __html: html }}\n {...props}\n />\n );\n }\n\n return (\n <div\n ref={ref as Ref<HTMLDivElement>}\n className={cn([\n '[&_a]:text-blue-500 [&_a]:hover:underline',\n '[&_code]:rounded [&_code]:border [&_code]:border-slate-200 [&_code]:bg-slate-150 [&_code]:px-[3px] [&_code]:py-[1px] [&_code]:font-mono [&_code]:text-[0.85em] [&_code]:text-gray-700',\n\n className,\n ])}\n dangerouslySetInnerHTML={{ __html: html }}\n {...props}\n />\n );\n },\n);\n\nMarkdown.displayName = 'Markdown';\n"],"mappings":";;;;;AAYA,IAAa,WAAW,YACnB,EACG,SAAS,SAAS,MAAM,IAAI,WAAW,GAAG,SAC3C,QAAQ;CACP,IAAI,OAAO;AACX,KAAI,QACA,QAAO,UAAA,GAAA,cAAA,sBAA8B,QAAQ,IAAA,GAAA,cAAA,gBAAkB,QAAQ;CAG3E,MAAM,YAAY,OAAO,SAAS,SAAS;AAE3C,KAAI,CAAC,KACD,QAAO;AAGX,KAAI,cAAc,OACd,QACI,oBAAC,QAAD;EACS;EACL,WAAW,GAAG;GACV;GACA;GAEA;GACH,CAAC;EACF,yBAAyB,EAAE,QAAQ,MAAM;EACzC,GAAI;EACN,CAAA;AAIV,KAAI,cAAc,IACd,QACI,oBAAC,KAAD;EACS;EACL,WAAW,GAAG;GACV;GACA;GAEA;GACH,CAAC;EACF,yBAAyB,EAAE,QAAQ,MAAM;EACzC,GAAI;EACN,CAAA;AAIV,QACI,oBAAC,OAAD;EACS;EACL,WAAW,GAAG;GACV;GACA;GAEA;GACH,CAAC;EACF,yBAAyB,EAAE,QAAQ,MAAM;EACzC,GAAI;EACN,CAAA;EAGb;AAED,SAAS,cAAc"}
@@ -0,0 +1,40 @@
1
+ import { default as React } from 'react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { buttonVariants } from './Button.jsx';
4
+ declare const menuTriggerVariants: (props?: ({
5
+ size?: "default" | "xs" | "sm" | "lg" | "xl" | null | undefined;
6
+ split?: "split" | "none" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ type MenuButtonVariant = VariantProps<typeof buttonVariants>['variant'];
9
+ type MenuButtonSize = VariantProps<typeof menuTriggerVariants>['size'];
10
+ type MenuMainAction = {
11
+ label?: React.ReactNode;
12
+ icon?: React.ReactNode;
13
+ iconPosition?: 'start' | 'end' | 'overlay';
14
+ iconClassName?: string;
15
+ labelClassName?: string;
16
+ onClick?: () => void;
17
+ };
18
+ type MenuActionItem = {
19
+ label: React.ReactNode;
20
+ icon?: React.ReactNode;
21
+ variant?: 'default' | 'destructive';
22
+ onClick?: () => void;
23
+ };
24
+ type MenuSeparatorItem = {
25
+ type: 'separator';
26
+ };
27
+ type MenuItem = MenuActionItem | MenuSeparatorItem;
28
+ type MenuButtonProps = React.ComponentProps<'div'> & {
29
+ mainAction?: MenuMainAction;
30
+ menuItems?: MenuItem[];
31
+ variant?: MenuButtonVariant;
32
+ size?: MenuButtonSize;
33
+ loading?: boolean;
34
+ disabled?: boolean;
35
+ defaultOpen?: boolean;
36
+ modal?: boolean;
37
+ };
38
+ export declare const MenuButton: ({ mainAction, menuItems, variant, size, loading, disabled, className, defaultOpen, modal, ...props }: MenuButtonProps) => import("react/jsx-runtime").JSX.Element;
39
+ export {};
40
+ //# sourceMappingURL=MenuButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../src/components/MenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,OAAO,EAAU,cAAc,EAAE,MAAM,cAAc,CAAC;AAwBtD,QAAA,MAAM,mBAAmB;;;8EAkBvB,CAAC;AAiBH,KAAK,iBAAiB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;AACxE,KAAK,cAAc,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,KAAK,cAAc,GAAG;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,QAAQ,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAEnD,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IACjD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,sGAWxB,eAAe,4CA4FjB,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { cn } from "../utils/classes.js";
2
+ import "../utils/index.js";
3
+ import { useTranslation } from "../hooks/useTranslation.js";
4
+ import "../hooks/index.js";
5
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from "./DropdownMenu.js";
6
+ import { Button } from "./Button.js";
7
+ import { cva } from "class-variance-authority";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
10
+ import { faChevronDown } from "@fortawesome/pro-solid-svg-icons";
11
+ //#region src/components/MenuButton.tsx
12
+ var menuMainButtonVariants = cva("!rounded-r-none", {
13
+ variants: { split: {
14
+ split: null,
15
+ none: "!border-r-0"
16
+ } },
17
+ defaultVariants: { split: "none" }
18
+ });
19
+ var menuTriggerVariants = cva("!rounded-l-none !border-l-0", {
20
+ variants: {
21
+ size: {
22
+ xs: "px-1.5 py-[3px]",
23
+ sm: "px-1.5 py-[5px]",
24
+ default: "px-1.5 py-[7px]",
25
+ lg: "px-2 py-[9px]",
26
+ xl: "px-2.5 py-[10px]"
27
+ },
28
+ split: {
29
+ split: "-ml-px",
30
+ none: "ml-[1px]"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ size: "default",
35
+ split: "none"
36
+ }
37
+ });
38
+ var menuTriggerIconVariants = cva("", {
39
+ variants: { size: {
40
+ xs: "size-2.5",
41
+ sm: "size-3",
42
+ default: "size-3",
43
+ lg: "size-3.5",
44
+ xl: "size-4"
45
+ } },
46
+ defaultVariants: { size: "default" }
47
+ });
48
+ var MenuButton = ({ mainAction, menuItems = [], variant = "default", size = "default", loading = false, disabled = false, className = "", defaultOpen = false, modal = true, ...props }) => {
49
+ const t = useTranslation();
50
+ const splitBorderVariant = variant === "outline" || variant === "dashed" ? "split" : "none";
51
+ const triggerClass = menuTriggerVariants({
52
+ size,
53
+ split: splitBorderVariant
54
+ });
55
+ const mainButtonClass = menuMainButtonVariants({ split: splitBorderVariant });
56
+ const handleMainAction = () => {
57
+ mainAction?.onClick?.();
58
+ };
59
+ const renderMenuItems = () => {
60
+ return menuItems.map((item, index) => {
61
+ if ("type" in item && item.type === "separator") return /* @__PURE__ */ jsx(DropdownMenuSeparator, {}, `separator-${index}`);
62
+ const actionItem = item;
63
+ return /* @__PURE__ */ jsxs(DropdownMenuItem, {
64
+ onClick: () => {
65
+ actionItem.onClick?.();
66
+ },
67
+ variant: actionItem.variant,
68
+ children: [actionItem.icon && /* @__PURE__ */ jsx("span", {
69
+ className: cn("mr-2"),
70
+ children: actionItem.icon
71
+ }), actionItem.label]
72
+ }, index);
73
+ });
74
+ };
75
+ return /* @__PURE__ */ jsxs("div", {
76
+ className: cn("inline-flex", className),
77
+ ...props,
78
+ children: [/* @__PURE__ */ jsx(Button, {
79
+ variant,
80
+ size,
81
+ loading,
82
+ disabled,
83
+ onClick: handleMainAction,
84
+ className: mainButtonClass,
85
+ children: /* @__PURE__ */ jsxs("span", {
86
+ className: cn("inline-flex items-center", mainAction?.icon && mainAction?.label && mainAction?.iconPosition !== "overlay" ? "gap-2" : "", mainAction?.iconPosition === "overlay" ? "relative" : ""),
87
+ children: [mainAction?.icon ? /* @__PURE__ */ jsx("span", {
88
+ className: cn(mainAction?.iconPosition === "overlay" ? "absolute inset-0 flex items-center justify-center pointer-events-none" : "", mainAction?.iconClassName || ""),
89
+ children: mainAction.icon
90
+ }) : null, mainAction?.label ? /* @__PURE__ */ jsx("span", {
91
+ className: mainAction?.labelClassName || "",
92
+ children: mainAction.label
93
+ }) : null]
94
+ })
95
+ }), /* @__PURE__ */ jsxs(DropdownMenu, {
96
+ size,
97
+ defaultOpen,
98
+ modal,
99
+ children: [/* @__PURE__ */ jsx(DropdownMenuTrigger, {
100
+ disabled,
101
+ render: /* @__PURE__ */ jsx(Button, {
102
+ variant,
103
+ size: "none",
104
+ disabled,
105
+ className: triggerClass,
106
+ "aria-label": t("Open menu")
107
+ }),
108
+ children: /* @__PURE__ */ jsx(FontAwesomeIcon, {
109
+ icon: faChevronDown,
110
+ className: cn(menuTriggerIconVariants({ size }), "transition-transform data-[popup-open]:rotate-180")
111
+ })
112
+ }), /* @__PURE__ */ jsx(DropdownMenuContent, {
113
+ align: "end",
114
+ children: renderMenuItems()
115
+ })]
116
+ })]
117
+ });
118
+ };
119
+ //#endregion
120
+ export { MenuButton };
121
+
122
+ //# sourceMappingURL=MenuButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.js","names":[],"sources":["../../src/components/MenuButton.tsx"],"sourcesContent":["import type React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown } from '@fortawesome/pro-solid-svg-icons';\n\nimport { Button, buttonVariants } from './Button.jsx';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from './DropdownMenu.jsx';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\nimport { useTranslation } from '@verbb/plugin-kit-react/hooks';\n\nconst menuMainButtonVariants = cva('!rounded-r-none', {\n variants: {\n split: {\n split: null,\n none: '!border-r-0',\n },\n },\n defaultVariants: {\n split: 'none',\n },\n});\n\nconst menuTriggerVariants = cva('!rounded-l-none !border-l-0', {\n variants: {\n size: {\n xs: 'px-1.5 py-[3px]',\n sm: 'px-1.5 py-[5px]',\n default: 'px-1.5 py-[7px]',\n lg: 'px-2 py-[9px]',\n xl: 'px-2.5 py-[10px]',\n },\n split: {\n split: '-ml-px',\n none: 'ml-[1px]',\n },\n },\n defaultVariants: {\n size: 'default',\n split: 'none',\n },\n});\n\nconst menuTriggerIconVariants = cva('', {\n variants: {\n size: {\n xs: 'size-2.5',\n sm: 'size-3',\n default: 'size-3',\n lg: 'size-3.5',\n xl: 'size-4',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\ntype MenuButtonVariant = VariantProps<typeof buttonVariants>['variant'];\ntype MenuButtonSize = VariantProps<typeof menuTriggerVariants>['size'];\n\ntype MenuMainAction = {\n label?: React.ReactNode;\n icon?: React.ReactNode;\n iconPosition?: 'start' | 'end' | 'overlay';\n iconClassName?: string;\n labelClassName?: string;\n onClick?: () => void;\n};\n\ntype MenuActionItem = {\n label: React.ReactNode;\n icon?: React.ReactNode;\n variant?: 'default' | 'destructive';\n onClick?: () => void;\n};\n\ntype MenuSeparatorItem = {\n type: 'separator';\n};\n\ntype MenuItem = MenuActionItem | MenuSeparatorItem;\n\ntype MenuButtonProps = React.ComponentProps<'div'> & {\n mainAction?: MenuMainAction;\n menuItems?: MenuItem[];\n variant?: MenuButtonVariant;\n size?: MenuButtonSize;\n loading?: boolean;\n disabled?: boolean;\n defaultOpen?: boolean;\n modal?: boolean;\n};\n\nexport const MenuButton = ({\n mainAction,\n menuItems = [],\n variant = 'default',\n size = 'default',\n loading = false,\n disabled = false,\n className = '',\n defaultOpen = false,\n modal = true,\n ...props\n}: MenuButtonProps) => {\n const t = useTranslation();\n const hasSplitBorder = variant === 'outline' || variant === 'dashed';\n const splitBorderVariant = hasSplitBorder ? 'split' : 'none';\n\n const triggerClass = menuTriggerVariants({ size, split: splitBorderVariant });\n const mainButtonClass = menuMainButtonVariants({ split: splitBorderVariant });\n\n const handleMainAction = () => {\n mainAction?.onClick?.();\n };\n\n const renderMenuItems = () => {\n return menuItems.map((item, index) => {\n if ('type' in item && item.type === 'separator') {\n return <DropdownMenuSeparator key={`separator-${index}`} />;\n }\n\n const actionItem = item as MenuActionItem;\n\n return (\n <DropdownMenuItem\n key={index}\n onClick={() => { actionItem.onClick?.(); }}\n variant={actionItem.variant}\n >\n {actionItem.icon && (\n <span className={cn('mr-2')}>{actionItem.icon}</span>\n )}\n {actionItem.label}\n </DropdownMenuItem>\n );\n });\n };\n\n return (\n <div className={cn('inline-flex', className)} {...props}>\n <Button\n variant={variant}\n size={size}\n loading={loading}\n disabled={disabled}\n onClick={handleMainAction}\n className={mainButtonClass}\n >\n <span className={cn(\n 'inline-flex items-center',\n mainAction?.icon && mainAction?.label && mainAction?.iconPosition !== 'overlay' ? 'gap-2' : '',\n mainAction?.iconPosition === 'overlay' ? 'relative' : '',\n )}>\n {mainAction?.icon ? (\n <span className={cn(\n mainAction?.iconPosition === 'overlay'\n ? 'absolute inset-0 flex items-center justify-center pointer-events-none'\n : '',\n mainAction?.iconClassName || '',\n )}>{mainAction.icon}</span>\n ) : null}\n {mainAction?.label ? (\n <span className={mainAction?.labelClassName || ''}>{mainAction.label}</span>\n ) : null}\n </span>\n </Button>\n\n <DropdownMenu size={size} defaultOpen={defaultOpen} modal={modal}>\n <DropdownMenuTrigger\n disabled={disabled}\n render={(\n <Button\n variant={variant}\n size=\"none\"\n disabled={disabled}\n className={triggerClass}\n aria-label={t('Open menu')}\n />\n )}\n >\n <FontAwesomeIcon\n icon={faChevronDown}\n className={cn(\n menuTriggerIconVariants({ size }),\n 'transition-transform data-[popup-open]:rotate-180',\n )}\n />\n </DropdownMenuTrigger>\n\n <DropdownMenuContent align=\"end\">\n {renderMenuItems()}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;AAiBA,IAAM,yBAAyB,IAAI,mBAAmB;CAClD,UAAU,EACN,OAAO;EACH,OAAO;EACP,MAAM;EACT,EACJ;CACD,iBAAiB,EACb,OAAO,QACV;CACJ,CAAC;AAEF,IAAM,sBAAsB,IAAI,+BAA+B;CAC3D,UAAU;EACN,MAAM;GACF,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACP;EACD,OAAO;GACH,OAAO;GACP,MAAM;GACT;EACJ;CACD,iBAAiB;EACb,MAAM;EACN,OAAO;EACV;CACJ,CAAC;AAEF,IAAM,0BAA0B,IAAI,IAAI;CACpC,UAAU,EACN,MAAM;EACF,IAAI;EACJ,IAAI;EACJ,SAAS;EACT,IAAI;EACJ,IAAI;EACP,EACJ;CACD,iBAAiB,EACb,MAAM,WACT;CACJ,CAAC;AAsCF,IAAa,cAAc,EACvB,YACA,YAAY,EAAE,EACd,UAAU,WACV,OAAO,WACP,UAAU,OACV,WAAW,OACX,YAAY,IACZ,cAAc,OACd,QAAQ,MACR,GAAG,YACgB;CACnB,MAAM,IAAI,gBAAgB;CAE1B,MAAM,qBADiB,YAAY,aAAa,YAAY,WAChB,UAAU;CAEtD,MAAM,eAAe,oBAAoB;EAAE;EAAM,OAAO;EAAoB,CAAC;CAC7E,MAAM,kBAAkB,uBAAuB,EAAE,OAAO,oBAAoB,CAAC;CAE7E,MAAM,yBAAyB;AAC3B,cAAY,WAAW;;CAG3B,MAAM,wBAAwB;AAC1B,SAAO,UAAU,KAAK,MAAM,UAAU;AAClC,OAAI,UAAU,QAAQ,KAAK,SAAS,YAChC,QAAO,oBAAC,uBAAD,EAAoD,EAAxB,aAAa,QAAW;GAG/D,MAAM,aAAa;AAEnB,UACI,qBAAC,kBAAD;IAEI,eAAe;AAAE,gBAAW,WAAW;;IACvC,SAAS,WAAW;cAHxB,CAKK,WAAW,QACR,oBAAC,QAAD;KAAM,WAAW,GAAG,OAAO;eAAG,WAAW;KAAY,CAAA,EAExD,WAAW,MACG;MARV,MAQU;IAEzB;;AAGN,QACI,qBAAC,OAAD;EAAK,WAAW,GAAG,eAAe,UAAU;EAAE,GAAI;YAAlD,CACI,oBAAC,QAAD;GACa;GACH;GACG;GACC;GACV,SAAS;GACT,WAAW;aAEX,qBAAC,QAAD;IAAM,WAAW,GACb,4BACA,YAAY,QAAQ,YAAY,SAAS,YAAY,iBAAiB,YAAY,UAAU,IAC5F,YAAY,iBAAiB,YAAY,aAAa,GACzD;cAJD,CAKK,YAAY,OACT,oBAAC,QAAD;KAAM,WAAW,GACb,YAAY,iBAAiB,YACvB,0EACA,IACN,YAAY,iBAAiB,GAChC;eAAG,WAAW;KAAY,CAAA,GAC3B,MACH,YAAY,QACT,oBAAC,QAAD;KAAM,WAAW,YAAY,kBAAkB;eAAK,WAAW;KAAa,CAAA,GAC5E,KACD;;GACF,CAAA,EAET,qBAAC,cAAD;GAAoB;GAAmB;GAAoB;aAA3D,CACI,oBAAC,qBAAD;IACc;IACV,QACI,oBAAC,QAAD;KACa;KACT,MAAK;KACK;KACV,WAAW;KACX,cAAY,EAAE,YAAY;KAC5B,CAAA;cAGN,oBAAC,iBAAD;KACI,MAAM;KACN,WAAW,GACP,wBAAwB,EAAE,MAAM,CAAC,EACjC,oDACH;KACH,CAAA;IACgB,CAAA,EAEtB,oBAAC,qBAAD;IAAqB,OAAM;cACtB,iBAAiB;IACA,CAAA,CACX;KACb"}
@@ -0,0 +1,8 @@
1
+ import { ComponentProps } from 'react';
2
+ import { Tabs as TabsPrimitive } from '@base-ui/react/tabs';
3
+ declare function ModalTabs({ className, ...props }: ComponentProps<typeof TabsPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function ModalTabsList({ className, ...props }: ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
5
+ declare function ModalTabsTrigger({ className, ...props }: ComponentProps<typeof TabsPrimitive.Tab>): import("react/jsx-runtime").JSX.Element;
6
+ declare function ModalTabsContent({ className, ...props }: ComponentProps<typeof TabsPrimitive.Panel>): import("react/jsx-runtime").JSX.Element;
7
+ export { ModalTabs, ModalTabsList, ModalTabsTrigger, ModalTabsContent, };
8
+ //# sourceMappingURL=ModalTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalTabs.d.ts","sourceRoot":"","sources":["../../src/components/ModalTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI5D,iBAAS,SAAS,CAAC,EACf,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAgB3C;AAED,iBAAS,aAAa,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAmB3C;AAED,iBAAS,gBAAgB,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,GAAG,CAAC,2CAsC1C;AAED,iBAAS,gBAAgB,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,2CAoB5C;AAED,OAAO,EACH,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACnB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { cn } from "../utils/classes.js";
2
+ import "../utils/index.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { Tabs } from "@base-ui/react/tabs";
5
+ //#region src/components/ModalTabs.tsx
6
+ function ModalTabs({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx(Tabs.Root, {
8
+ "data-slot": "tabs",
9
+ className: cn("overflow-hidden", "rounded-lg", "h-full", "min-h-0", "flex flex-col", className),
10
+ ...props
11
+ });
12
+ }
13
+ function ModalTabsList({ className, ...props }) {
14
+ return /* @__PURE__ */ jsx(Tabs.List, {
15
+ "data-slot": "tabs-list",
16
+ className: cn("flex flex-row flex-nowrap", "w-full", "min-w-0 max-w-full", "overflow-x-auto overflow-y-hidden", "bg-white", "z-11", "shadow-[0_1px_5px_#cdd8e440]", "border-b border-b-gray-100", className),
17
+ ...props
18
+ });
19
+ }
20
+ function ModalTabsTrigger({ className, ...props }) {
21
+ return /* @__PURE__ */ jsx(Tabs.Tab, {
22
+ "data-slot": "tabs-trigger",
23
+ className: cn("outline-none shadow-none cursor-pointer", "shrink-0 whitespace-nowrap", "relative", "px-[15px]", "pt-[15px]", "pb-[15px]", "text-[#64788d]", "text-[12px]", "font-medium", "uppercase", "hover:text-sky-600", "focus-visible:shadow-[inset_0_0_0_2px_var(--color-sky-600)]", "data-[active]:after:content-[\"\"]", "data-[active]:after:absolute", "data-[active]:after:bottom-0", "data-[active]:after:left-[15px]", "data-[active]:after:right-0", "data-[active]:after:w-[calc(100%-30px)]", "data-[active]:after:h-[2px]", "data-[active]:after:bg-sky-600", className),
24
+ ...props
25
+ });
26
+ }
27
+ function ModalTabsContent({ className, ...props }) {
28
+ return /* @__PURE__ */ jsx(Tabs.Panel, {
29
+ "data-slot": "tabs-content",
30
+ className: cn("outline-none", "flex-1 min-h-0", "p-4", "overflow-y-auto", "focus-visible:shadow-[inset_0_0_0_2px_var(--color-sky-600)]", className),
31
+ ...props
32
+ });
33
+ }
34
+ //#endregion
35
+ export { ModalTabs, ModalTabsContent, ModalTabsList, ModalTabsTrigger };
36
+
37
+ //# sourceMappingURL=ModalTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalTabs.js","names":[],"sources":["../../src/components/ModalTabs.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\nimport { Tabs as TabsPrimitive } from '@base-ui/react/tabs';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\nfunction ModalTabs({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\n 'overflow-hidden',\n 'rounded-lg',\n 'h-full',\n 'min-h-0',\n 'flex flex-col',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ModalTabsList({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n 'flex flex-row flex-nowrap',\n 'w-full',\n 'min-w-0 max-w-full',\n 'overflow-x-auto overflow-y-hidden',\n 'bg-white',\n 'z-11',\n 'shadow-[0_1px_5px_#cdd8e440]',\n 'border-b border-b-gray-100',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ModalTabsTrigger({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Tab>) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n 'outline-none shadow-none cursor-pointer',\n 'shrink-0 whitespace-nowrap',\n\n 'relative',\n 'px-[15px]',\n 'pt-[15px]',\n 'pb-[15px]',\n 'text-[#64788d]',\n 'text-[12px]',\n 'font-medium',\n 'uppercase',\n\n // Hover state\n 'hover:text-sky-600',\n\n // Accessibility\n 'focus-visible:shadow-[inset_0_0_0_2px_var(--color-sky-600)]',\n\n // Active state\n 'data-[active]:after:content-[\"\"]',\n 'data-[active]:after:absolute',\n 'data-[active]:after:bottom-0',\n 'data-[active]:after:left-[15px]',\n 'data-[active]:after:right-0',\n 'data-[active]:after:w-[calc(100%-30px)]',\n 'data-[active]:after:h-[2px]',\n 'data-[active]:after:bg-sky-600',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ModalTabsContent({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Panel>) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\n // Reset and layout\n 'outline-none',\n 'flex-1 min-h-0',\n\n 'p-4',\n 'overflow-y-auto',\n\n // Accessibility\n 'focus-visible:shadow-[inset_0_0_0_2px_var(--color-sky-600)]',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n ModalTabs,\n ModalTabsList,\n ModalTabsTrigger,\n ModalTabsContent,\n};\n"],"mappings":";;;;;AAKA,SAAS,UAAU,EACf,WACA,GAAG,SACuC;AAC1C,QACI,oBAAC,KAAc,MAAf;EACI,aAAU;EACV,WAAW,GACP,mBACA,cACA,UACA,WACA,iBAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,cAAc,EACnB,WACA,GAAG,SACuC;AAC1C,QACI,oBAAC,KAAc,MAAf;EACI,aAAU;EACV,WAAW,GACP,6BACA,UACA,sBACA,qCACA,YACA,QACA,gCACA,8BAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,iBAAiB,EACtB,WACA,GAAG,SACsC;AACzC,QACI,oBAAC,KAAc,KAAf;EACI,aAAU;EACV,WAAW,GACP,2CACA,8BAEA,YACA,aACA,aACA,aACA,kBACA,eACA,eACA,aAGA,sBAGA,+DAGA,sCACA,gCACA,gCACA,mCACA,+BACA,2CACA,+BACA,kCAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,iBAAiB,EACtB,WACA,GAAG,SACwC;AAC3C,QACI,oBAAC,KAAc,OAAf;EACI,aAAU;EACV,WAAW,GAEP,gBACA,kBAEA,OACA,mBAGA,+DAEA,UACH;EACD,GAAI;EACN,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { ComponentProps } from 'react';
2
+ import { Tabs as TabsPrimitive } from '@base-ui/react/tabs';
3
+ declare function PaneTabs({ className, ...props }: ComponentProps<typeof TabsPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function PaneTabsList({ className, ...props }: ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
5
+ declare function PaneTabsTrigger({ className, ...props }: ComponentProps<typeof TabsPrimitive.Tab>): import("react/jsx-runtime").JSX.Element;
6
+ declare function PaneTabsContent({ className, ...props }: ComponentProps<typeof TabsPrimitive.Panel>): import("react/jsx-runtime").JSX.Element;
7
+ export { PaneTabs, PaneTabsList, PaneTabsTrigger, PaneTabsContent, };
8
+ //# sourceMappingURL=PaneTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaneTabs.d.ts","sourceRoot":"","sources":["../../src/components/PaneTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI5D,iBAAS,QAAQ,CAAC,EACd,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAgB3C;AAED,iBAAS,YAAY,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAiB3C;AAED,iBAAS,eAAe,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,GAAG,CAAC,2CAwB1C;AAED,iBAAS,eAAe,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,2CAqB5C;AAED,OAAO,EACH,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,eAAe,GAClB,CAAC"}