ixia-ui-react 2.0.0 → 2.1.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 (68) hide show
  1. package/dist/alert-dialog/index.js +1 -1
  2. package/dist/bento-box/index.js +1 -1
  3. package/dist/bento-box/index.js.map +1 -1
  4. package/dist/button/index.d.ts +1 -1
  5. package/dist/button/index.js +1 -1
  6. package/dist/{button-BpUC-R1J.js → button-DXQvyQyj.js} +7 -5
  7. package/dist/button-DXQvyQyj.js.map +1 -0
  8. package/dist/button-group/index.d.ts +1 -1
  9. package/dist/button-group/index.js +1 -1
  10. package/dist/button-group-BiSk3iIf.js +269 -0
  11. package/dist/button-group-BiSk3iIf.js.map +1 -0
  12. package/dist/button-group-context-CScS9Ntz.js +7 -0
  13. package/dist/button-group-context-CScS9Ntz.js.map +1 -0
  14. package/dist/calendar/index.js +1 -1
  15. package/dist/code-block/index.d.ts +5 -2
  16. package/dist/code-block/index.js +9 -24
  17. package/dist/code-block/index.js.map +1 -1
  18. package/dist/collapsible/index.d.ts +1 -1
  19. package/dist/collapsible/index.js +1 -1
  20. package/dist/{collapsible-BVqrh0Q0.js → collapsible-C3OPWY9l.js} +2 -2
  21. package/dist/{collapsible-BVqrh0Q0.js.map → collapsible-C3OPWY9l.js.map} +1 -1
  22. package/dist/color-picker/index.js +1 -1
  23. package/dist/combobox/index.js +1 -1
  24. package/dist/copy-button/index.d.ts +2 -0
  25. package/dist/copy-button/index.js +1 -0
  26. package/dist/copy-button-BAG-P44v.js +28 -0
  27. package/dist/copy-button-BAG-P44v.js.map +1 -0
  28. package/dist/dialog/index.js +1 -1
  29. package/dist/dropzone/index.d.ts +1 -1
  30. package/dist/dropzone/index.js +1 -1
  31. package/dist/field/index.js +1 -1
  32. package/dist/{field-DTL7eA5y.js → field-DkMfrmdj.js} +2 -2
  33. package/dist/{field-DTL7eA5y.js.map → field-DkMfrmdj.js.map} +1 -1
  34. package/dist/form/index.d.ts +1 -1
  35. package/dist/form/index.js +2 -2
  36. package/dist/{form-BxMg796f.js → form-V2VqHn0D.js} +3 -3
  37. package/dist/{form-BxMg796f.js.map → form-V2VqHn0D.js.map} +1 -1
  38. package/dist/{index-DfNHJF0t.d.ts → index-B0Qz4Egw.d.ts} +2 -2
  39. package/dist/{index-B3MK1QYh.d.ts → index-CpNMNewO.d.ts} +3 -3
  40. package/dist/index-DVMheqs_.d.ts +9 -0
  41. package/dist/{index-N2CBSUDu.d.ts → index-DXDObRKO.d.ts} +2 -2
  42. package/dist/index-uaJUy56Z.d.ts +4 -0
  43. package/dist/input/index.js +1 -1
  44. package/dist/{input-Laj6dwtK.js → input-Czt30vp7.js} +2 -2
  45. package/dist/{input-Laj6dwtK.js.map → input-Czt30vp7.js.map} +1 -1
  46. package/dist/layer-tree/index.d.ts +1 -1
  47. package/dist/layer-tree/index.js +1 -1
  48. package/dist/map/google/index.d.ts +2 -2
  49. package/dist/map/google/index.js +2 -2
  50. package/dist/map/index.d.ts +2 -2
  51. package/dist/map/index.js +2 -2
  52. package/dist/number-field/index.js +1 -1
  53. package/dist/popover/index.d.ts +1 -1
  54. package/dist/popover/index.js +1 -1
  55. package/dist/{popover-B1s4xXrX.js → popover-0WDxRi-s.js} +2 -2
  56. package/dist/{popover-B1s4xXrX.js.map → popover-0WDxRi-s.js.map} +1 -1
  57. package/dist/sidebar/index.d.ts +2 -2
  58. package/dist/sidebar/index.js +4 -4
  59. package/dist/sidebar/index.js.map +1 -1
  60. package/dist/slider-group/index.js +1 -1
  61. package/dist/table/index.d.ts +1 -1
  62. package/dist/table/index.js +4 -4
  63. package/dist/toast/index.js +1 -1
  64. package/package.json +1 -1
  65. package/dist/button-BpUC-R1J.js.map +0 -1
  66. package/dist/button-group-7azbqlcO.js +0 -269
  67. package/dist/button-group-7azbqlcO.js.map +0 -1
  68. package/dist/index-bVyqfhJS.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["CodeBlock","CodeBlockRoot"],"sources":["../../src/components/code-block/code-block.tsx","../../src/components/code-block/code-block-actions.tsx","../../src/components/code-block/code-block-copy.tsx","../../src/components/code-block/code-block-download.tsx","../../src/components/code-block/code-block-header.tsx","../../src/components/code-block/code-block-name.tsx","../../src/components/code-block/code-block-select.tsx","../../src/components/code-block/code-block-tabs.tsx","../../src/components/code-block/code-block-window.tsx","../../src/components/code-block/index.ts"],"sourcesContent":["import React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport type { CodeBlockProps, CodeBlockProviderState, CodeBlockValue } from './code-block.types'\n\nconst CodeBlockContext = React.createContext<CodeBlockProviderState | undefined>(undefined)\n\nfunction CodeBlock({ items, defaultValue, className, ref, ...props }: CodeBlockProps) {\n const [currentValue, setCurrentValue] = React.useState<CodeBlockValue>(defaultValue)\n\n return (\n <CodeBlockContext.Provider value={{ currentValue, items, setCurrentValue }}>\n <div\n className={cn('flex flex-col rounded-xl border border-border bg-surface', className)}\n ref={ref}\n {...props}\n />\n </CodeBlockContext.Provider>\n )\n}\n\nfunction useCodeBlock() {\n const context = React.useContext(CodeBlockContext)\n\n if (!context) {\n throw new Error('useCodeBlock must be used within a CodeBlock')\n }\n\n return context\n}\n\nexport { CodeBlock, useCodeBlock }\n","import { cn } from '@/utils/cn'\n\nimport type { CodeBlockActionsProps } from './code-block.types'\n\nexport function CodeBlockActions({ className, ref, ...props }: CodeBlockActionsProps) {\n return (\n <div\n className={cn('absolute top-2xs right-2xs flex items-center gap-3xs', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockCopyProps } from './code-block.types'\n\nconst COPY_TIMEOUT = 2000,\n COPY_STATUS_ICON = {\n false: <Icon name=\"copy\" className=\"animate-in zoom-in\" />,\n true: <Icon name=\"selected\" className=\"animate-in zoom-in\" />,\n }\n\nexport function CodeBlockCopy({\n className,\n children,\n disabled,\n ref,\n ...props\n}: CodeBlockCopyProps) {\n const { currentValue } = useCodeBlock(),\n { code } = currentValue,\n [copied, setCopied] = React.useState(false),\n handleClick = async () => {\n try {\n if (code === undefined) {\n throw new Error('No source code available to copy')\n }\n await navigator.clipboard.writeText(code)\n setCopied(true)\n setTimeout(() => setCopied(false), COPY_TIMEOUT)\n } catch (error) {\n console.error('Failed to copy text:', error)\n }\n }\n\n return (\n <Button\n aria-label=\"Copy code\"\n className={cn('', className)}\n onClick={handleClick}\n ref={ref}\n size=\"medium\"\n tone=\"neutral\"\n variant=\"ghost\"\n {...props}\n disabled={disabled || code === undefined}\n >\n {children}\n {COPY_STATUS_ICON[`${copied}`]}\n </Button>\n )\n}\n","import React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockDownloadProps } from './code-block.types'\n\nconst DOWNLOAD_TIMEOUT = 2000,\n DOWNLOAD_STATUS_ICON = {\n false: <Icon name=\"download\" className=\"animate-in zoom-in\" />,\n true: <Icon name=\"selected\" className=\"animate-in zoom-in\" />,\n }\n\nexport function CodeBlockDownload({\n className,\n children,\n disabled,\n ref,\n ...props\n}: CodeBlockDownloadProps) {\n const { currentValue } = useCodeBlock(),\n { code } = currentValue,\n [downloaded, setDownloaded] = React.useState(false),\n handleClick = async () => {\n try {\n if (code === undefined) {\n throw new Error('No source code available to download')\n }\n const blob = new Blob([code], { type: 'text/plain;charset=utf-8' }),\n url = URL.createObjectURL(blob),\n link = document.createElement('a')\n link.href = url\n link.download = currentValue.name\n link.click()\n URL.revokeObjectURL(url)\n\n setDownloaded(true)\n setTimeout(() => setDownloaded(false), DOWNLOAD_TIMEOUT)\n } catch (error) {\n console.error('Failed to download file:', error)\n }\n }\n\n return (\n <Button\n aria-label=\"Download file\"\n onClick={handleClick}\n size=\"medium\"\n variant=\"ghost\"\n tone=\"neutral\"\n className={cn('', className)}\n ref={ref}\n {...props}\n disabled={disabled || code === undefined}\n >\n {children}\n {DOWNLOAD_STATUS_ICON[`${downloaded}`]}\n </Button>\n )\n}\n","import { cn } from '@/utils/cn'\n\ntype CodeBlockHeaderProps = React.ComponentProps<'div'>\n\nexport function CodeBlockHeader({ className, ref, ...props }: CodeBlockHeaderProps) {\n return (\n <div\n className={cn(\n // Keep the tab-specific default overridable by ordinary padding classes.\n 'flex min-h-2xl items-center justify-between border-b border-border px-2xs pl-(--code-block-header-padding-left) [--code-block-header-padding-left:var(--spacing-2xs)] has-data-[slot=code-block-tabs]:[--code-block-header-padding-left:0px]',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\nimport { trimTextChildren } from '@/utils/trim-text-children'\n\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockNameProps } from './code-block.types'\n\nexport function CodeBlockName({ className, children, ref, ...props }: CodeBlockNameProps) {\n const { currentValue } = useCodeBlock()\n\n if (!currentValue?.name) {\n return undefined\n }\n\n return (\n <div\n className={cn(\n 'flex items-center justify-center gap-2xs px-xs font-heading text-base leading-none font-bold text-on-surface-variant [&>svg]:size-md',\n className,\n )}\n ref={ref}\n {...props}\n >\n {trimTextChildren(children)}\n {currentValue?.icon}\n {trimTextChildren(currentValue.name)}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Icon } from '../icon'\nimport {\n Select,\n SelectIcon,\n SelectItem,\n SelectList,\n SelectPopup,\n SelectTitle,\n SelectTrigger,\n SelectValue,\n} from '../select'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockSelectProps } from './code-block.types'\n\nexport function CodeBlockSelect({ className, children, ref, ...props }: CodeBlockSelectProps) {\n const { currentValue, setCurrentValue, items } = useCodeBlock(),\n handleChange = (value: unknown) => {\n const selectedValue = items.find(({ id }) => id === value)\n if (selectedValue) {\n setCurrentValue(selectedValue)\n }\n }\n\n return (\n <Select value={currentValue.id} onValueChange={handleChange}>\n <SelectTrigger\n aria-label=\"Select snippet\"\n className={cn('', className)}\n ref={ref}\n {...props}\n variant=\"ghost\"\n >\n <SelectValue>\n {(value: keyof typeof items) => items.find((item) => item.id === value)?.label}\n </SelectValue>\n <SelectIcon>\n <Icon name=\"chevronsUpDown\" />\n </SelectIcon>\n </SelectTrigger>\n <SelectPopup>\n <SelectList>\n {children}\n {items.map(({ label, id }) => (\n <SelectItem key={id} value={id}>\n <SelectTitle>{label}</SelectTitle>\n </SelectItem>\n ))}\n </SelectList>\n </SelectPopup>\n </Select>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Tabs, TabsList, TabsTab } from '../tabs'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockTabsProps } from './code-block.types'\n\nexport function CodeBlockTabs({ className, children, ref, ...props }: CodeBlockTabsProps) {\n const { currentValue, items, setCurrentValue } = useCodeBlock(),\n handleOnValueChange = (value: string) => {\n const selectedValue = items.find((item) => item.id === value)\n if (selectedValue) {\n setCurrentValue(selectedValue)\n }\n }\n\n return (\n <Tabs\n value={currentValue.id}\n onValueChange={handleOnValueChange}\n className={cn('', className)}\n variant=\"underline\"\n showBorder={false}\n ref={ref}\n {...props}\n >\n <TabsList data-slot=\"code-block-tabs\">\n {items.map(({ id, label }) => (\n <TabsTab key={id} value={id}>\n {label}\n </TabsTab>\n ))}\n </TabsList>\n {children}\n </Tabs>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockWindowProps } from './code-block.types'\n\nexport function CodeBlockWindow({ className, children, ref, ...props }: CodeBlockWindowProps) {\n const { currentValue } = useCodeBlock()\n let { content } = currentValue\n\n if (content === undefined && currentValue.code !== undefined) {\n content = (\n <pre>\n <code>{currentValue.code}</code>\n </pre>\n )\n }\n\n return (\n <div\n className={cn('relative overflow-auto rounded-lg px-md py-sm', className)}\n ref={ref}\n {...props}\n >\n {children}\n {content}\n </div>\n )\n}\n","import { CodeBlock as CodeBlockRoot } from './code-block'\nimport { CodeBlockActions } from './code-block-actions'\nimport { CodeBlockCopy } from './code-block-copy'\nimport { CodeBlockDownload } from './code-block-download'\nimport { CodeBlockHeader } from './code-block-header'\nimport { CodeBlockName } from './code-block-name'\nimport { CodeBlockSelect } from './code-block-select'\nimport { CodeBlockTabs } from './code-block-tabs'\nimport { CodeBlockWindow } from './code-block-window'\n\nconst CodeBlock = Object.assign(CodeBlockRoot, {\n Actions: CodeBlockActions,\n Copy: CodeBlockCopy,\n Download: CodeBlockDownload,\n Header: CodeBlockHeader,\n Name: CodeBlockName,\n Select: CodeBlockSelect,\n Tabs: CodeBlockTabs,\n Window: CodeBlockWindow,\n})\n\nexport type {\n CodeBlockProps,\n CodeBlockActionsProps,\n CodeBlockCopyProps,\n CodeBlockDownloadProps,\n CodeBlockHeaderGroupProps,\n CodeBlockNameProps,\n CodeBlockProviderState,\n CodeBlockSelectProps,\n CodeBlockTabsProps,\n CodeBlockWindowProps,\n CodeBlockValue,\n} from './code-block.types'\nexport { CodeBlockActions } from './code-block-actions'\nexport { CodeBlockCopy } from './code-block-copy'\nexport { CodeBlockDownload } from './code-block-download'\nexport { CodeBlockHeader } from './code-block-header'\nexport { CodeBlockName } from './code-block-name'\nexport { CodeBlockSelect } from './code-block-select'\nexport { CodeBlockTabs } from './code-block-tabs'\nexport { CodeBlockWindow } from './code-block-window'\n\nexport { CodeBlock }\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["CodeBlock","CodeBlockRoot"],"sources":["../../src/components/code-block/code-block.tsx","../../src/components/code-block/code-block-actions.tsx","../../src/components/code-block/code-block-copy.tsx","../../src/components/code-block/code-block-download.tsx","../../src/components/code-block/code-block-header.tsx","../../src/components/code-block/code-block-name.tsx","../../src/components/code-block/code-block-select.tsx","../../src/components/code-block/code-block-tabs.tsx","../../src/components/code-block/code-block-window.tsx","../../src/components/code-block/index.ts"],"sourcesContent":["import React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport type { CodeBlockProps, CodeBlockProviderState, CodeBlockValue } from './code-block.types'\n\nconst CodeBlockContext = React.createContext<CodeBlockProviderState | undefined>(undefined)\n\nfunction CodeBlock({ items, defaultValue, className, ref, ...props }: CodeBlockProps) {\n const [currentValue, setCurrentValue] = React.useState<CodeBlockValue>(defaultValue)\n\n return (\n <CodeBlockContext.Provider value={{ currentValue, items, setCurrentValue }}>\n <div\n className={cn('flex flex-col rounded-xl border border-border bg-surface', className)}\n ref={ref}\n {...props}\n />\n </CodeBlockContext.Provider>\n )\n}\n\nfunction useCodeBlock() {\n const context = React.useContext(CodeBlockContext)\n\n if (!context) {\n throw new Error('useCodeBlock must be used within a CodeBlock')\n }\n\n return context\n}\n\nexport { CodeBlock, useCodeBlock }\n","import { cn } from '@/utils/cn'\n\nimport type { CodeBlockActionsProps } from './code-block.types'\n\nexport function CodeBlockActions({ className, ref, ...props }: CodeBlockActionsProps) {\n return (\n <div\n className={cn('absolute top-2xs right-2xs flex items-center gap-3xs', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { CopyButton } from '../copy-button'\nimport { Icon } from '../icon'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockCopyProps } from './code-block.types'\n\nconst COPY_STATUS_ICON = {\n false: <Icon name=\"copy\" />,\n true: <Icon name=\"selected\" />,\n}\n\nexport function CodeBlockCopy({\n className,\n children,\n disabled,\n ref,\n ...props\n}: CodeBlockCopyProps) {\n const { currentValue } = useCodeBlock(),\n { code } = currentValue\n\n return (\n <CopyButton\n aria-label=\"Copy code\"\n className={cn('', className)}\n ref={ref}\n size=\"medium\"\n tone=\"neutral\"\n variant=\"ghost\"\n {...props}\n content={code ?? ''}\n disabled={disabled || code === undefined}\n >\n {(copied) => (\n <>\n {children}\n {COPY_STATUS_ICON[`${copied}`]}\n </>\n )}\n </CopyButton>\n )\n}\n","import React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockDownloadProps } from './code-block.types'\n\nconst DOWNLOAD_TIMEOUT = 2000,\n DOWNLOAD_STATUS_ICON = {\n false: <Icon name=\"download\" className=\"animate-in zoom-in\" />,\n true: <Icon name=\"selected\" className=\"animate-in zoom-in\" />,\n }\n\nexport function CodeBlockDownload({\n className,\n children,\n disabled,\n ref,\n ...props\n}: CodeBlockDownloadProps) {\n const { currentValue } = useCodeBlock(),\n { code } = currentValue,\n [downloaded, setDownloaded] = React.useState(false),\n handleClick = async () => {\n try {\n if (code === undefined) {\n throw new Error('No source code available to download')\n }\n const blob = new Blob([code], { type: 'text/plain;charset=utf-8' }),\n url = URL.createObjectURL(blob),\n link = document.createElement('a')\n link.href = url\n link.download = currentValue.name\n link.click()\n URL.revokeObjectURL(url)\n\n setDownloaded(true)\n setTimeout(() => setDownloaded(false), DOWNLOAD_TIMEOUT)\n } catch (error) {\n console.error('Failed to download file:', error)\n }\n }\n\n return (\n <Button\n aria-label=\"Download file\"\n onClick={handleClick}\n size=\"medium\"\n variant=\"ghost\"\n tone=\"neutral\"\n className={cn('', className)}\n ref={ref}\n {...props}\n disabled={disabled || code === undefined}\n >\n {children}\n {DOWNLOAD_STATUS_ICON[`${downloaded}`]}\n </Button>\n )\n}\n","import { cn } from '@/utils/cn'\n\ntype CodeBlockHeaderProps = React.ComponentProps<'div'>\n\nexport function CodeBlockHeader({ className, ref, ...props }: CodeBlockHeaderProps) {\n return (\n <div\n className={cn(\n // Keep the tab-specific default overridable by ordinary padding classes.\n 'flex min-h-2xl items-center justify-between border-b border-border px-2xs pl-(--code-block-header-padding-left) [--code-block-header-padding-left:var(--spacing-2xs)] has-data-[slot=code-block-tabs]:[--code-block-header-padding-left:0px]',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\nimport { trimTextChildren } from '@/utils/trim-text-children'\n\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockNameProps } from './code-block.types'\n\nexport function CodeBlockName({ className, children, ref, ...props }: CodeBlockNameProps) {\n const { currentValue } = useCodeBlock()\n\n if (!currentValue?.name) {\n return undefined\n }\n\n return (\n <div\n className={cn(\n 'flex items-center justify-center gap-2xs px-xs font-heading text-base leading-none font-bold text-on-surface-variant [&>svg]:size-md',\n className,\n )}\n ref={ref}\n {...props}\n >\n {trimTextChildren(children)}\n {currentValue?.icon}\n {trimTextChildren(currentValue.name)}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Icon } from '../icon'\nimport {\n Select,\n SelectIcon,\n SelectItem,\n SelectList,\n SelectPopup,\n SelectTitle,\n SelectTrigger,\n SelectValue,\n} from '../select'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockSelectProps } from './code-block.types'\n\nexport function CodeBlockSelect({ className, children, ref, ...props }: CodeBlockSelectProps) {\n const { currentValue, setCurrentValue, items } = useCodeBlock(),\n handleChange = (value: unknown) => {\n const selectedValue = items.find(({ id }) => id === value)\n if (selectedValue) {\n setCurrentValue(selectedValue)\n }\n }\n\n return (\n <Select value={currentValue.id} onValueChange={handleChange}>\n <SelectTrigger\n aria-label=\"Select snippet\"\n className={cn('', className)}\n ref={ref}\n {...props}\n variant=\"ghost\"\n >\n <SelectValue>\n {(value: keyof typeof items) => items.find((item) => item.id === value)?.label}\n </SelectValue>\n <SelectIcon>\n <Icon name=\"chevronsUpDown\" />\n </SelectIcon>\n </SelectTrigger>\n <SelectPopup>\n <SelectList>\n {children}\n {items.map(({ label, id }) => (\n <SelectItem key={id} value={id}>\n <SelectTitle>{label}</SelectTitle>\n </SelectItem>\n ))}\n </SelectList>\n </SelectPopup>\n </Select>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Tabs, TabsList, TabsTab } from '../tabs'\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockTabsProps } from './code-block.types'\n\nexport function CodeBlockTabs({ className, children, ref, ...props }: CodeBlockTabsProps) {\n const { currentValue, items, setCurrentValue } = useCodeBlock(),\n handleOnValueChange = (value: string) => {\n const selectedValue = items.find((item) => item.id === value)\n if (selectedValue) {\n setCurrentValue(selectedValue)\n }\n }\n\n return (\n <Tabs\n value={currentValue.id}\n onValueChange={handleOnValueChange}\n className={cn('', className)}\n variant=\"underline\"\n showBorder={false}\n ref={ref}\n {...props}\n >\n <TabsList data-slot=\"code-block-tabs\">\n {items.map(({ id, label }) => (\n <TabsTab key={id} value={id}>\n {label}\n </TabsTab>\n ))}\n </TabsList>\n {children}\n </Tabs>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useCodeBlock } from './code-block'\nimport type { CodeBlockWindowProps } from './code-block.types'\n\nexport function CodeBlockWindow({ className, children, ref, ...props }: CodeBlockWindowProps) {\n const { currentValue } = useCodeBlock()\n let { content } = currentValue\n\n if (content === undefined && currentValue.code !== undefined) {\n content = (\n <pre>\n <code>{currentValue.code}</code>\n </pre>\n )\n }\n\n return (\n <div\n className={cn('relative overflow-auto rounded-lg px-md py-sm', className)}\n ref={ref}\n {...props}\n >\n {children}\n {content}\n </div>\n )\n}\n","import { CodeBlock as CodeBlockRoot } from './code-block'\nimport { CodeBlockActions } from './code-block-actions'\nimport { CodeBlockCopy } from './code-block-copy'\nimport { CodeBlockDownload } from './code-block-download'\nimport { CodeBlockHeader } from './code-block-header'\nimport { CodeBlockName } from './code-block-name'\nimport { CodeBlockSelect } from './code-block-select'\nimport { CodeBlockTabs } from './code-block-tabs'\nimport { CodeBlockWindow } from './code-block-window'\n\nconst CodeBlock = Object.assign(CodeBlockRoot, {\n Actions: CodeBlockActions,\n Copy: CodeBlockCopy,\n Download: CodeBlockDownload,\n Header: CodeBlockHeader,\n Name: CodeBlockName,\n Select: CodeBlockSelect,\n Tabs: CodeBlockTabs,\n Window: CodeBlockWindow,\n})\n\nexport type {\n CodeBlockProps,\n CodeBlockActionsProps,\n CodeBlockCopyProps,\n CodeBlockDownloadProps,\n CodeBlockHeaderGroupProps,\n CodeBlockNameProps,\n CodeBlockProviderState,\n CodeBlockSelectProps,\n CodeBlockTabsProps,\n CodeBlockWindowProps,\n CodeBlockValue,\n} from './code-block.types'\nexport { CodeBlockActions } from './code-block-actions'\nexport { CodeBlockCopy } from './code-block-copy'\nexport { CodeBlockDownload } from './code-block-download'\nexport { CodeBlockHeader } from './code-block-header'\nexport { CodeBlockName } from './code-block-name'\nexport { CodeBlockSelect } from './code-block-select'\nexport { CodeBlockTabs } from './code-block-tabs'\nexport { CodeBlockWindow } from './code-block-window'\n\nexport { CodeBlock }\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as CollapsibleProps, i as CollapsiblePanelProps, n as CollapsibleTrigger, o as CollapsibleTriggerProps, r as CollapsiblePanel, t as Collapsible } from "../index-N2CBSUDu.js";
1
+ import { a as CollapsibleProps, i as CollapsiblePanelProps, n as CollapsibleTrigger, o as CollapsibleTriggerProps, r as CollapsiblePanel, t as Collapsible } from "../index-DXDObRKO.js";
2
2
  export { Collapsible, CollapsiblePanel, type CollapsiblePanelProps, type CollapsibleProps, CollapsibleTrigger, type CollapsibleTriggerProps };
@@ -1 +1 @@
1
- export { t as Collapsible, r as CollapsiblePanel, n as CollapsibleTrigger } from "../collapsible-BVqrh0Q0.js";
1
+ export { t as Collapsible, r as CollapsiblePanel, n as CollapsibleTrigger } from "../collapsible-C3OPWY9l.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./cn-BDi0DfT5.js";
2
2
  import { n as Icon } from "./icon-D3JWfCa2.js";
3
- import { t as Button } from "./button-BpUC-R1J.js";
3
+ import { t as Button } from "./button-DXQvyQyj.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Collapsible } from "@base-ui/react/collapsible";
6
6
  // src/components/collapsible/collapsible.tsx
@@ -41,4 +41,4 @@ const Collapsible$1 = Object.assign(Collapsible$2, {
41
41
  });
42
42
  export { CollapsibleTrigger as n, CollapsiblePanel as r, Collapsible$1 as t };
43
43
 
44
- //# sourceMappingURL=collapsible-BVqrh0Q0.js.map
44
+ //# sourceMappingURL=collapsible-C3OPWY9l.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible-BVqrh0Q0.js","names":["Collapsible","BaseCollapsible","BaseCollapsible","BaseCollapsible","Collapsible","CollapsibleRoot"],"sources":["../src/components/collapsible/collapsible.tsx","../src/components/collapsible/collapsible-panel.tsx","../src/components/collapsible/collapsible-trigger.tsx","../src/components/collapsible/index.ts"],"sourcesContent":["import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible'\n\nimport { cn } from '@/utils/cn'\n\nimport type { CollapsibleProps } from './collapsible.types'\n\nexport function Collapsible({ className, ref, ...props }: CollapsibleProps) {\n return (\n <BaseCollapsible.Root\n className={cn('flex min-h-xl w-full flex-col justify-center gap-xs', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible'\n\nimport { cn } from '@/utils/cn'\n\nimport type { CollapsiblePanelProps } from './collapsible.types'\n\nexport function CollapsiblePanel({ className, ref, ...props }: CollapsiblePanelProps) {\n return (\n <BaseCollapsible.Panel\n className={cn(\n 'mb-3xs ml-md flex h-(--collapsible-panel-height) flex-col justify-end gap-3xs overflow-hidden border-l border-border-strong pl-sm transition-all duration-150 ease-out data-ending-style:h-0 data-starting-style:h-0 [&[hidden]:not([hidden=\"until-found\"])]:hidden',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport type { CollapsibleTriggerProps } from './collapsible.types'\n\nexport function CollapsibleTrigger({\n className,\n children,\n ref,\n ...props\n}: CollapsibleTriggerProps) {\n return (\n <BaseCollapsible.Trigger\n render={(renderProps) => (\n <Button\n {...renderProps}\n tone=\"neutral\"\n variant=\"elevated\"\n className={cn('group/trigger', className)}\n ref={ref}\n {...props}\n >\n {children}\n <Icon\n name=\"chevronRight\"\n className=\"ml-auto transition-all ease-out group-data-panel-open/trigger:rotate-90\"\n />\n </Button>\n )}\n />\n )\n}\n","import { Collapsible as CollapsibleRoot } from './collapsible'\nimport { CollapsiblePanel } from './collapsible-panel'\nimport { CollapsibleTrigger } from './collapsible-trigger'\n\nconst Collapsible = Object.assign(CollapsibleRoot, {\n Panel: CollapsiblePanel,\n Trigger: CollapsibleTrigger,\n})\n\nexport type {\n CollapsibleProps,\n CollapsibleTriggerProps,\n CollapsiblePanelProps,\n} from './collapsible.types'\nexport { CollapsiblePanel } from './collapsible-panel'\nexport { CollapsibleTrigger } from './collapsible-trigger'\n\nexport { Collapsible }\n"],"mappings":";;;;;;AAMA,SAAgBA,cAAY,EAAE,WAAW,KAAK,GAAG,SAA2B;CAC1E,OACE,oBAACC,YAAgB,MAAjB;EACE,WAAW,GAAG,uDAAuD,SAAS;EACzE;EACL,GAAI;CACL,CAAA;AAEL;;ACRA,SAAgB,iBAAiB,EAAE,WAAW,KAAK,GAAG,SAAgC;CACpF,OACE,oBAACC,YAAgB,OAAjB;EACE,WAAW,GACT,yQACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL;;ACTA,SAAgB,mBAAmB,EACjC,WACA,UACA,KACA,GAAG,SACuB;CAC1B,OACE,oBAACC,YAAgB,SAAjB,EACE,SAAS,gBACP,qBAAC,QAAD;EACE,GAAI;EACJ,MAAK;EACL,SAAQ;EACR,WAAW,GAAG,iBAAiB,SAAS;EACnC;EACL,GAAI;EANN,UAAA,CAQG,UACD,oBAAC,MAAD;GACE,MAAK;GACL,WAAU;EACX,CAAA,CACK;CAEX,CAAA,EAAA,CAAA;AAEL;;AC9BA,MAAMC,gBAAc,OAAO,OAAOC,eAAiB;CACjD,OAAO;CACP,SAAS;AACX,CAAC"}
1
+ {"version":3,"file":"collapsible-C3OPWY9l.js","names":["Collapsible","BaseCollapsible","BaseCollapsible","BaseCollapsible","Collapsible","CollapsibleRoot"],"sources":["../src/components/collapsible/collapsible.tsx","../src/components/collapsible/collapsible-panel.tsx","../src/components/collapsible/collapsible-trigger.tsx","../src/components/collapsible/index.ts"],"sourcesContent":["import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible'\n\nimport { cn } from '@/utils/cn'\n\nimport type { CollapsibleProps } from './collapsible.types'\n\nexport function Collapsible({ className, ref, ...props }: CollapsibleProps) {\n return (\n <BaseCollapsible.Root\n className={cn('flex min-h-xl w-full flex-col justify-center gap-xs', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible'\n\nimport { cn } from '@/utils/cn'\n\nimport type { CollapsiblePanelProps } from './collapsible.types'\n\nexport function CollapsiblePanel({ className, ref, ...props }: CollapsiblePanelProps) {\n return (\n <BaseCollapsible.Panel\n className={cn(\n 'mb-3xs ml-md flex h-(--collapsible-panel-height) flex-col justify-end gap-3xs overflow-hidden border-l border-border-strong pl-sm transition-all duration-150 ease-out data-ending-style:h-0 data-starting-style:h-0 [&[hidden]:not([hidden=\"until-found\"])]:hidden',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport type { CollapsibleTriggerProps } from './collapsible.types'\n\nexport function CollapsibleTrigger({\n className,\n children,\n ref,\n ...props\n}: CollapsibleTriggerProps) {\n return (\n <BaseCollapsible.Trigger\n render={(renderProps) => (\n <Button\n {...renderProps}\n tone=\"neutral\"\n variant=\"elevated\"\n className={cn('group/trigger', className)}\n ref={ref}\n {...props}\n >\n {children}\n <Icon\n name=\"chevronRight\"\n className=\"ml-auto transition-all ease-out group-data-panel-open/trigger:rotate-90\"\n />\n </Button>\n )}\n />\n )\n}\n","import { Collapsible as CollapsibleRoot } from './collapsible'\nimport { CollapsiblePanel } from './collapsible-panel'\nimport { CollapsibleTrigger } from './collapsible-trigger'\n\nconst Collapsible = Object.assign(CollapsibleRoot, {\n Panel: CollapsiblePanel,\n Trigger: CollapsibleTrigger,\n})\n\nexport type {\n CollapsibleProps,\n CollapsibleTriggerProps,\n CollapsiblePanelProps,\n} from './collapsible.types'\nexport { CollapsiblePanel } from './collapsible-panel'\nexport { CollapsibleTrigger } from './collapsible-trigger'\n\nexport { Collapsible }\n"],"mappings":";;;;;;AAMA,SAAgBA,cAAY,EAAE,WAAW,KAAK,GAAG,SAA2B;CAC1E,OACE,oBAACC,YAAgB,MAAjB;EACE,WAAW,GAAG,uDAAuD,SAAS;EACzE;EACL,GAAI;CACL,CAAA;AAEL;;ACRA,SAAgB,iBAAiB,EAAE,WAAW,KAAK,GAAG,SAAgC;CACpF,OACE,oBAACC,YAAgB,OAAjB;EACE,WAAW,GACT,yQACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL;;ACTA,SAAgB,mBAAmB,EACjC,WACA,UACA,KACA,GAAG,SACuB;CAC1B,OACE,oBAACC,YAAgB,SAAjB,EACE,SAAS,gBACP,qBAAC,QAAD;EACE,GAAI;EACJ,MAAK;EACL,SAAQ;EACR,WAAW,GAAG,iBAAiB,SAAS;EACnC;EACL,GAAI;EANN,UAAA,CAQG,UACD,oBAAC,MAAD;GACE,MAAK;GACL,WAAU;EACX,CAAA,CACK;CAEX,CAAA,EAAA,CAAA;AAEL;;AC9BA,MAAMC,gBAAc,OAAO,OAAOC,eAAiB;CACjD,OAAO;CACP,SAAS;AACX,CAAC"}
@@ -4,7 +4,7 @@ import { a as SelectPopup, c as SelectIcon, n as SelectValue, o as SelectList, r
4
4
  import { t as ColorChannelSlider } from "../color-channel-slider-h8mUPJ35.js";
5
5
  import { i as InputGroupAddon, r as InputGroupInput, t as InputGroup } from "../input-group-CgdazGrY.js";
6
6
  import { t as Separator } from "../separator-DgIQp1cB.js";
7
- import { c as PopoverContent, i as PopoverPanel, n as PopoverTrigger, t as Popover } from "../popover-B1s4xXrX.js";
7
+ import { c as PopoverContent, i as PopoverPanel, n as PopoverTrigger, t as Popover } from "../popover-0WDxRi-s.js";
8
8
  import { cva } from "class-variance-authority";
9
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
10
  import React from "react";
@@ -1,7 +1,7 @@
1
1
  import { t as cn } from "../cn-BDi0DfT5.js";
2
2
  import { n as Icon } from "../icon-D3JWfCa2.js";
3
3
  import { t as trimTextChildren } from "../trim-text-children-CQRFg2fL.js";
4
- import { t as Button } from "../button-BpUC-R1J.js";
4
+ import { t as Button } from "../button-DXQvyQyj.js";
5
5
  import { i as InputGroupAddon, t as InputGroup } from "../input-group-CgdazGrY.js";
6
6
  import { t as Separator } from "../separator-DgIQp1cB.js";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -0,0 +1,2 @@
1
+ import { n as CopyButtonProps, t as CopyButton } from "../index-DVMheqs_.js";
2
+ export { CopyButton, type CopyButtonProps };
@@ -0,0 +1 @@
1
+ export { t as CopyButton } from "../copy-button-BAG-P44v.js";
@@ -0,0 +1,28 @@
1
+ import { t as cn } from "./cn-BDi0DfT5.js";
2
+ import { t as Button } from "./button-DXQvyQyj.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { useState } from "react";
5
+ // src/components/copy-button/copy-button.tsx
6
+ const COPY_TIMEOUT = 2e3;
7
+ function CopyButton({ content, className, children, ref, timeout = COPY_TIMEOUT, ...props }) {
8
+ const [copied, setCopied] = useState(false), [hasCopied, setHasCopied] = useState(false), handleClick = async () => {
9
+ try {
10
+ await navigator.clipboard.writeText(content);
11
+ setHasCopied(true);
12
+ setCopied(true);
13
+ setTimeout(() => setCopied(false), timeout);
14
+ } catch (error) {
15
+ console.error("Failed to copy text:", error);
16
+ }
17
+ };
18
+ return /* @__PURE__ */ jsx(Button, {
19
+ className: cn(hasCopied && "[&>svg]:animate-in [&>svg]:zoom-in", className),
20
+ ref,
21
+ onClick: handleClick,
22
+ ...props,
23
+ children: children(copied)
24
+ });
25
+ }
26
+ export { CopyButton as t };
27
+
28
+ //# sourceMappingURL=copy-button-BAG-P44v.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-button-BAG-P44v.js","names":[],"sources":["../src/components/copy-button/copy-button.tsx"],"sourcesContent":["import { useState } from 'react'\n\nimport { cn } from '@/utils'\n\nimport { Button } from '../button'\nimport type { CopyButtonProps } from './copy-button.types'\n\nconst COPY_TIMEOUT = 2000\n\nexport function CopyButton({\n content,\n className,\n children,\n ref,\n timeout = COPY_TIMEOUT,\n ...props\n}: CopyButtonProps) {\n const [copied, setCopied] = useState(false),\n [hasCopied, setHasCopied] = useState(false),\n handleClick = async () => {\n try {\n await navigator.clipboard.writeText(content)\n setHasCopied(true)\n setCopied(true)\n setTimeout(() => setCopied(false), timeout)\n } catch (error) {\n console.error('Failed to copy text:', error)\n }\n }\n return (\n <Button\n className={cn(hasCopied && '[&>svg]:animate-in [&>svg]:zoom-in', className)}\n ref={ref}\n onClick={handleClick}\n {...props}\n >\n {children(copied)}\n </Button>\n )\n}\n"],"mappings":";;;;;AAOA,MAAM,eAAe;AAErB,SAAgB,WAAW,EACzB,SACA,WACA,UACA,KACA,UAAU,cACV,GAAG,SACe;CAClB,MAAM,CAAC,QAAQ,aAAa,SAAS,KAAK,GACxC,CAAC,WAAW,gBAAgB,SAAS,KAAK,GAC1C,cAAc,YAAY;EACxB,IAAI;GACF,MAAM,UAAU,UAAU,UAAU,OAAO;GAC3C,aAAa,IAAI;GACjB,UAAU,IAAI;GACd,iBAAiB,UAAU,KAAK,GAAG,OAAO;EAC5C,SAAS,OAAO;GACd,QAAQ,MAAM,wBAAwB,KAAK;EAC7C;CACF;CACF,OACE,oBAAC,QAAD;EACE,WAAW,GAAG,aAAa,sCAAsC,SAAS;EACrE;EACL,SAAS;EACT,GAAI;EAEH,UAAA,SAAS,MAAM;CACV,CAAA;AAEZ"}
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "../cn-BDi0DfT5.js";
2
2
  import { n as Icon } from "../icon-D3JWfCa2.js";
3
- import { t as Button } from "../button-BpUC-R1J.js";
3
+ import { t as Button } from "../button-DXQvyQyj.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { isValidElement } from "react";
6
6
  import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
@@ -1,4 +1,4 @@
1
- import { t as Button } from "../index-bVyqfhJS.js";
1
+ import { t as Button } from "../index-uaJUy56Z.js";
2
2
  import React$1 from "react";
3
3
  type DropzoneContainerProps = React.ComponentProps<'label'> & {
4
4
  children?: React.ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "../cn-BDi0DfT5.js";
2
2
  import { n as Icon } from "../icon-D3JWfCa2.js";
3
- import { t as Button } from "../button-BpUC-R1J.js";
3
+ import { t as Button } from "../button-DXQvyQyj.js";
4
4
  import { c as MeterFooter, n as MeterValue, o as MeterIndicator, r as MeterTrack, t as Meter } from "../meter-HD5taq57.js";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import React, { useId } from "react";
@@ -1 +1 @@
1
- export { t as Field, _ as FieldCheckbox, g as FieldDescription, h as FieldErrors, m as FieldInput, p as FieldInputGroup, f as FieldInputGroupInput, d as FieldLabel, u as FieldRadio, l as FieldRadioGroup, c as FieldRow, s as FieldSelect, o as FieldSet, a as FieldSlider, i as FieldSwitch, r as FieldTextArea, n as FieldToggle } from "../field-DTL7eA5y.js";
1
+ export { t as Field, _ as FieldCheckbox, g as FieldDescription, h as FieldErrors, m as FieldInput, p as FieldInputGroup, f as FieldInputGroupInput, d as FieldLabel, u as FieldRadio, l as FieldRadioGroup, c as FieldRow, s as FieldSelect, o as FieldSet, a as FieldSlider, i as FieldSwitch, r as FieldTextArea, n as FieldToggle } from "../field-DkMfrmdj.js";
@@ -2,7 +2,7 @@ import { t as cn } from "./cn-BDi0DfT5.js";
2
2
  import { t as Select } from "./select-DncJXYim.js";
3
3
  import { t as Checkbox } from "./checkbox-BuUZ1Lly.js";
4
4
  import { r as InputGroupInput, t as InputGroup } from "./input-group-CgdazGrY.js";
5
- import { t as Input } from "./input-Laj6dwtK.js";
5
+ import { t as Input } from "./input-Czt30vp7.js";
6
6
  import { n as Radio, t as RadioGroup } from "./radio-group-Dj43u35Z.js";
7
7
  import { t as Slider } from "./slider-D_XlV4OW.js";
8
8
  import { t as Switch } from "./switch-DXHixGHe.js";
@@ -251,4 +251,4 @@ const Field = Object.assign(Field$1, {
251
251
  });
252
252
  export { FieldCheckbox as _, FieldSlider as a, useFieldContext as b, FieldRow as c, FieldLabel as d, FieldInputGroupInput as f, FieldDescription as g, FieldErrors as h, FieldSwitch as i, FieldRadioGroup as l, FieldInput as m, FieldToggle as n, FieldSet as o, FieldInputGroup as p, FieldTextArea as r, FieldSelect as s, Field as t, FieldRadio as u, fieldContext as v, useFormContext as x, formContext as y };
253
253
 
254
- //# sourceMappingURL=field-DTL7eA5y.js.map
254
+ //# sourceMappingURL=field-DkMfrmdj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-DTL7eA5y.js","names":["Field","NO_ERRORS","NO_ERRORS","NO_ERRORS","NO_ERRORS","NO_ERRORS","FieldRoot"],"sources":["../src/components/field/field.tsx","../src/components/form/form-contexts.ts","../src/components/field/field-checkbox.tsx","../src/components/field/field-description.tsx","../src/components/field/field-errors.tsx","../src/components/field/field-input.tsx","../src/components/field/field-input-group.tsx","../src/components/field/field-input-group-input.tsx","../src/components/field/field.types.ts","../src/components/field/field-label.tsx","../src/components/field/field-radio.tsx","../src/components/field/field-radio-group.tsx","../src/components/field/field-row.tsx","../src/components/field/field-select.tsx","../src/components/field/field-set.tsx","../src/components/field/field-slider.tsx","../src/components/field/field-switch.tsx","../src/components/field/field-text-area.tsx","../src/components/field/field-toggle.tsx","../src/components/field/index.ts"],"sourcesContent":["import { cn } from '@/utils/cn'\n\nimport type { FieldProps } from './field.types'\n\nexport function Field({ className, children, ref, ...props }: FieldProps) {\n return (\n <div className={cn('flex flex-col gap-2xs', className)} ref={ref} {...props}>\n {children}\n </div>\n )\n}\n","import { createFormHookContexts } from '@tanstack/react-form'\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } =\n createFormHookContexts()\n","import { Checkbox } from '../checkbox'\nimport { useFieldContext } from '../form/form-contexts'\nimport type { FieldCheckboxProps } from './field.types'\n\nexport function FieldCheckbox({ children, ...props }: FieldCheckboxProps) {\n const field = useFieldContext<boolean>()\n\n return (\n <Checkbox\n checked={field.state.value}\n id={field.name}\n name={field.name}\n onCheckedChange={(checked) => field.handleChange(checked)}\n {...props}\n >\n {children}\n </Checkbox>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FieldDescriptionProps } from './field.types'\n\nexport function FieldDescription({ className, ref, ...props }: FieldDescriptionProps) {\n return (\n <p\n className={cn('style-text-prose--1 text-on-surface-variant', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport type { FieldErrorProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldErrors({ className, children, ref, ...props }: FieldErrorProps) {\n const field = useFieldContext()\n\n if (field.state.meta.errors.length === NO_ERRORS) {\n return undefined\n }\n\n return (\n <ul className={cn('space-y-3xs', className)} ref={ref} {...props}>\n {field.state.meta.errors.map((error) => (\n <li\n className=\"flex items-center gap-2xs style-text-strong--1 text-error-default\"\n key={error.message}\n >\n {error.message}\n </li>\n ))}\n {children}\n </ul>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { Input } from '../input'\nimport type { FieldInputProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldInput({ className, ref, ...props }: FieldInputProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <Input\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n name={field.name}\n onChange={(event) => field.handleChange(event.target.value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { InputGroup } from '../input-group'\nimport type { FieldInputGroupProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldInputGroup({ className, ref, ...props }: FieldInputGroupProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <InputGroup\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { InputGroupInput } from '../input-group'\nimport type { FieldInputGroupInputProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldInputGroupInput({ className, ref, ...props }: FieldInputGroupInputProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <InputGroupInput\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n name={field.name}\n onChange={(event) => field.handleChange(event.target.value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport type { Checkbox } from '../checkbox'\nimport type { Input } from '../input'\nimport type { InputGroup, InputGroupInput } from '../input-group'\nimport type { Radio, RadioGroup } from '../radio-group'\nimport type { Select } from '../select'\nimport type { Slider } from '../slider'\nimport type { Switch } from '../switch'\nimport type { TextArea } from '../text-area'\nimport type { Toggle } from '../toggle'\n\ntype FieldDescriptionProps = React.ComponentProps<'p'>\ntype FieldErrorProps = React.ComponentProps<'ul'>\ntype FieldInputGroupProps = React.ComponentProps<typeof InputGroup>\ntype FieldInputGroupInputProps = React.ComponentProps<typeof InputGroupInput>\ntype FieldInputProps = React.ComponentProps<typeof Input>\ntype FieldLabelProps = React.ComponentProps<'div'> &\n VariantProps<typeof fieldLabelVariants> & {\n showRequired?: boolean\n }\ntype FieldSelectProps = React.ComponentProps<typeof Select>\ntype FieldSliderProps = React.ComponentProps<typeof Slider>\ntype FieldTextAreaProps = React.ComponentProps<typeof TextArea>\ntype FieldCheckboxProps = React.ComponentProps<typeof Checkbox>\ntype FieldRadioProps = React.ComponentProps<typeof Radio>\ntype FieldRadioGroupProps = React.ComponentProps<typeof RadioGroup>\ntype FieldSwitchProps = React.ComponentProps<typeof Switch>\ntype FieldToggleProps = React.ComponentProps<typeof Toggle>\ntype FieldProps = React.ComponentProps<'div'>\ntype FieldSetProps = React.ComponentProps<'div'>\ntype FieldRowProps = React.ComponentProps<'div'>\n\nexport const fieldLabelVariants = cva('whitespace-nowrap', {\n defaultVariants: {\n size: 'medium',\n variant: 'primary',\n },\n variants: {\n size: {\n large: 'style-text-default-1',\n medium: 'style-text-default-0',\n small: 'style-text-default--1',\n },\n variant: {\n primary: 'text-on-surface',\n secondary: 'text-on-surface-variant',\n },\n },\n})\n\nexport type {\n FieldDescriptionProps,\n FieldErrorProps,\n FieldInputGroupProps,\n FieldInputGroupInputProps,\n FieldInputProps,\n FieldLabelProps,\n FieldSelectProps,\n FieldSliderProps,\n FieldTextAreaProps,\n FieldCheckboxProps,\n FieldRadioProps,\n FieldRadioGroupProps,\n FieldSwitchProps,\n FieldToggleProps,\n FieldProps,\n FieldSetProps,\n FieldRowProps,\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { fieldLabelVariants } from './field.types'\nimport type { FieldLabelProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldLabel({\n size,\n variant,\n showRequired = false,\n className,\n children,\n ref,\n ...props\n}: FieldLabelProps) {\n const field = useFieldContext(),\n fieldName = field.name\n .replace(/(?<letter>[A-Z])/g, ' $<letter>')\n .replace(/^./, (str) => str.toUpperCase()),\n isInvalid = field.state.meta.errors.length > NO_ERRORS\n\n return (\n <div\n className={cn(\n fieldLabelVariants({ size, variant }),\n className,\n isInvalid && 'text-error-default',\n )}\n ref={ref}\n {...props}\n >\n {children || fieldName}\n {showRequired && <span className=\"ml-3xs text-error-default\">*</span>}\n </div>\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Radio } from '../radio-group'\nimport type { FieldRadioProps } from './field.types'\n\nexport function FieldRadio({ ...props }: FieldRadioProps) {\n const field = useFieldContext<string>()\n\n return (\n <Radio\n {...props}\n onChange={(event) => {\n if (event.target instanceof HTMLInputElement) {\n field.handleChange(event.target.value)\n }\n }}\n value={field.state.value}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { RadioGroup } from '../radio-group'\nimport type { FieldRadioGroupProps } from './field.types'\n\nexport function FieldRadioGroup({ ...props }: FieldRadioGroupProps) {\n const field = useFieldContext<string>()\n\n return (\n <RadioGroup\n name={field.name}\n onValueChange={(value) => field.handleChange(String(value))}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FieldRowProps } from './field.types'\n\nexport function FieldRow({ className, ref, ...props }: FieldRowProps) {\n return (\n <div\n className={cn('flex items-center justify-between gap-sm', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Select } from '../select'\nimport type { FieldSelectProps } from './field.types'\n\nexport function FieldSelect({ children, ...props }: FieldSelectProps) {\n const field = useFieldContext()\n\n return (\n <Select value={field.state.value} onValueChange={(value) => field.setValue(value)} {...props}>\n {children}\n </Select>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FieldSetProps } from './field.types'\n\nexport function FieldSet({ className, ref, ...props }: FieldSetProps) {\n return <div className={cn('flex w-full flex-col gap-2xs', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { Slider } from '../slider'\nimport type { FieldSliderProps } from './field.types'\n\nexport function FieldSlider({ className, ref, ...props }: FieldSliderProps) {\n const field = useFieldContext<number | readonly number[]>()\n\n return (\n <Slider\n className={cn('', className)}\n onValueChange={(value) => field.setValue(value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Switch } from '../switch'\nimport type { FieldSwitchProps } from './field.types'\n\nexport function FieldSwitch({ children, ...props }: FieldSwitchProps) {\n const field = useFieldContext<boolean>()\n\n return (\n <Switch\n checked={field.state.value}\n id={field.name}\n name={field.name}\n onCheckedChange={(checked) => field.handleChange(checked)}\n {...props}\n >\n {children}\n </Switch>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { TextArea } from '../text-area'\nimport type { FieldTextAreaProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldTextArea({ className, ref, ...props }: FieldTextAreaProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <TextArea\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n name={field.name}\n onChange={(event) => field.handleChange(event.target.value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Toggle } from '../toggle'\nimport type { FieldToggleProps } from './field.types'\n\nexport function FieldToggle({ ...props }: FieldToggleProps) {\n const field = useFieldContext<boolean>()\n\n return (\n <Toggle\n id={field.name}\n name={field.name}\n onChange={(_e) => field.handleChange(!field.state.value)}\n pressed={field.state.value}\n {...props}\n />\n )\n}\n","import { Field as FieldRoot } from './field'\nimport { FieldCheckbox } from './field-checkbox'\nimport { FieldDescription } from './field-description'\nimport { FieldErrors } from './field-errors'\nimport { FieldInput } from './field-input'\nimport { FieldInputGroup } from './field-input-group'\nimport { FieldInputGroupInput } from './field-input-group-input'\nimport { FieldLabel } from './field-label'\nimport { FieldRadio } from './field-radio'\nimport { FieldRadioGroup } from './field-radio-group'\nimport { FieldRow } from './field-row'\nimport { FieldSelect } from './field-select'\nimport { FieldSet } from './field-set'\nimport { FieldSlider } from './field-slider'\nimport { FieldSwitch } from './field-switch'\nimport { FieldTextArea } from './field-text-area'\nimport { FieldToggle } from './field-toggle'\n\nconst Field = Object.assign(FieldRoot, {\n Checkbox: FieldCheckbox,\n Description: FieldDescription,\n Errors: FieldErrors,\n Input: FieldInput,\n InputGroup: FieldInputGroup,\n InputGroupInput: FieldInputGroupInput,\n Label: FieldLabel,\n Radio: FieldRadio,\n RadioGroup: FieldRadioGroup,\n Row: FieldRow,\n Select: FieldSelect,\n Set: FieldSet,\n Slider: FieldSlider,\n Switch: FieldSwitch,\n TextArea: FieldTextArea,\n Toggle: FieldToggle,\n})\n\nexport type {\n FieldDescriptionProps,\n FieldErrorProps,\n FieldInputProps,\n FieldLabelProps,\n FieldProps,\n FieldSelectProps,\n FieldSliderProps,\n FieldTextAreaProps,\n FieldCheckboxProps,\n FieldRadioProps,\n FieldRadioGroupProps,\n FieldSwitchProps,\n FieldToggleProps,\n FieldInputGroupInputProps,\n FieldInputGroupProps,\n FieldSetProps,\n FieldRowProps,\n} from './field.types'\nexport { FieldDescription } from './field-description'\nexport { FieldErrors } from './field-errors'\nexport { FieldInput } from './field-input'\nexport { FieldLabel } from './field-label'\nexport { FieldSlider } from './field-slider'\nexport { FieldSelect } from './field-select'\nexport { FieldTextArea } from './field-text-area'\nexport { FieldCheckbox } from './field-checkbox'\nexport { FieldRadio } from './field-radio'\nexport { FieldRadioGroup } from './field-radio-group'\nexport { FieldSwitch } from './field-switch'\nexport { FieldToggle } from './field-toggle'\nexport { FieldInputGroup } from './field-input-group'\nexport { FieldInputGroupInput } from './field-input-group-input'\nexport { FieldSet } from './field-set'\nexport { FieldRow } from './field-row'\n\nexport { Field }\n"],"mappings":"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"}
1
+ {"version":3,"file":"field-DkMfrmdj.js","names":["Field","NO_ERRORS","NO_ERRORS","NO_ERRORS","NO_ERRORS","NO_ERRORS","FieldRoot"],"sources":["../src/components/field/field.tsx","../src/components/form/form-contexts.ts","../src/components/field/field-checkbox.tsx","../src/components/field/field-description.tsx","../src/components/field/field-errors.tsx","../src/components/field/field-input.tsx","../src/components/field/field-input-group.tsx","../src/components/field/field-input-group-input.tsx","../src/components/field/field.types.ts","../src/components/field/field-label.tsx","../src/components/field/field-radio.tsx","../src/components/field/field-radio-group.tsx","../src/components/field/field-row.tsx","../src/components/field/field-select.tsx","../src/components/field/field-set.tsx","../src/components/field/field-slider.tsx","../src/components/field/field-switch.tsx","../src/components/field/field-text-area.tsx","../src/components/field/field-toggle.tsx","../src/components/field/index.ts"],"sourcesContent":["import { cn } from '@/utils/cn'\n\nimport type { FieldProps } from './field.types'\n\nexport function Field({ className, children, ref, ...props }: FieldProps) {\n return (\n <div className={cn('flex flex-col gap-2xs', className)} ref={ref} {...props}>\n {children}\n </div>\n )\n}\n","import { createFormHookContexts } from '@tanstack/react-form'\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } =\n createFormHookContexts()\n","import { Checkbox } from '../checkbox'\nimport { useFieldContext } from '../form/form-contexts'\nimport type { FieldCheckboxProps } from './field.types'\n\nexport function FieldCheckbox({ children, ...props }: FieldCheckboxProps) {\n const field = useFieldContext<boolean>()\n\n return (\n <Checkbox\n checked={field.state.value}\n id={field.name}\n name={field.name}\n onCheckedChange={(checked) => field.handleChange(checked)}\n {...props}\n >\n {children}\n </Checkbox>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FieldDescriptionProps } from './field.types'\n\nexport function FieldDescription({ className, ref, ...props }: FieldDescriptionProps) {\n return (\n <p\n className={cn('style-text-prose--1 text-on-surface-variant', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport type { FieldErrorProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldErrors({ className, children, ref, ...props }: FieldErrorProps) {\n const field = useFieldContext()\n\n if (field.state.meta.errors.length === NO_ERRORS) {\n return undefined\n }\n\n return (\n <ul className={cn('space-y-3xs', className)} ref={ref} {...props}>\n {field.state.meta.errors.map((error) => (\n <li\n className=\"flex items-center gap-2xs style-text-strong--1 text-error-default\"\n key={error.message}\n >\n {error.message}\n </li>\n ))}\n {children}\n </ul>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { Input } from '../input'\nimport type { FieldInputProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldInput({ className, ref, ...props }: FieldInputProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <Input\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n name={field.name}\n onChange={(event) => field.handleChange(event.target.value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { InputGroup } from '../input-group'\nimport type { FieldInputGroupProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldInputGroup({ className, ref, ...props }: FieldInputGroupProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <InputGroup\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { InputGroupInput } from '../input-group'\nimport type { FieldInputGroupInputProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldInputGroupInput({ className, ref, ...props }: FieldInputGroupInputProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <InputGroupInput\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n name={field.name}\n onChange={(event) => field.handleChange(event.target.value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport type { Checkbox } from '../checkbox'\nimport type { Input } from '../input'\nimport type { InputGroup, InputGroupInput } from '../input-group'\nimport type { Radio, RadioGroup } from '../radio-group'\nimport type { Select } from '../select'\nimport type { Slider } from '../slider'\nimport type { Switch } from '../switch'\nimport type { TextArea } from '../text-area'\nimport type { Toggle } from '../toggle'\n\ntype FieldDescriptionProps = React.ComponentProps<'p'>\ntype FieldErrorProps = React.ComponentProps<'ul'>\ntype FieldInputGroupProps = React.ComponentProps<typeof InputGroup>\ntype FieldInputGroupInputProps = React.ComponentProps<typeof InputGroupInput>\ntype FieldInputProps = React.ComponentProps<typeof Input>\ntype FieldLabelProps = React.ComponentProps<'div'> &\n VariantProps<typeof fieldLabelVariants> & {\n showRequired?: boolean\n }\ntype FieldSelectProps = React.ComponentProps<typeof Select>\ntype FieldSliderProps = React.ComponentProps<typeof Slider>\ntype FieldTextAreaProps = React.ComponentProps<typeof TextArea>\ntype FieldCheckboxProps = React.ComponentProps<typeof Checkbox>\ntype FieldRadioProps = React.ComponentProps<typeof Radio>\ntype FieldRadioGroupProps = React.ComponentProps<typeof RadioGroup>\ntype FieldSwitchProps = React.ComponentProps<typeof Switch>\ntype FieldToggleProps = React.ComponentProps<typeof Toggle>\ntype FieldProps = React.ComponentProps<'div'>\ntype FieldSetProps = React.ComponentProps<'div'>\ntype FieldRowProps = React.ComponentProps<'div'>\n\nexport const fieldLabelVariants = cva('whitespace-nowrap', {\n defaultVariants: {\n size: 'medium',\n variant: 'primary',\n },\n variants: {\n size: {\n large: 'style-text-default-1',\n medium: 'style-text-default-0',\n small: 'style-text-default--1',\n },\n variant: {\n primary: 'text-on-surface',\n secondary: 'text-on-surface-variant',\n },\n },\n})\n\nexport type {\n FieldDescriptionProps,\n FieldErrorProps,\n FieldInputGroupProps,\n FieldInputGroupInputProps,\n FieldInputProps,\n FieldLabelProps,\n FieldSelectProps,\n FieldSliderProps,\n FieldTextAreaProps,\n FieldCheckboxProps,\n FieldRadioProps,\n FieldRadioGroupProps,\n FieldSwitchProps,\n FieldToggleProps,\n FieldProps,\n FieldSetProps,\n FieldRowProps,\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { fieldLabelVariants } from './field.types'\nimport type { FieldLabelProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldLabel({\n size,\n variant,\n showRequired = false,\n className,\n children,\n ref,\n ...props\n}: FieldLabelProps) {\n const field = useFieldContext(),\n fieldName = field.name\n .replace(/(?<letter>[A-Z])/g, ' $<letter>')\n .replace(/^./, (str) => str.toUpperCase()),\n isInvalid = field.state.meta.errors.length > NO_ERRORS\n\n return (\n <div\n className={cn(\n fieldLabelVariants({ size, variant }),\n className,\n isInvalid && 'text-error-default',\n )}\n ref={ref}\n {...props}\n >\n {children || fieldName}\n {showRequired && <span className=\"ml-3xs text-error-default\">*</span>}\n </div>\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Radio } from '../radio-group'\nimport type { FieldRadioProps } from './field.types'\n\nexport function FieldRadio({ ...props }: FieldRadioProps) {\n const field = useFieldContext<string>()\n\n return (\n <Radio\n {...props}\n onChange={(event) => {\n if (event.target instanceof HTMLInputElement) {\n field.handleChange(event.target.value)\n }\n }}\n value={field.state.value}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { RadioGroup } from '../radio-group'\nimport type { FieldRadioGroupProps } from './field.types'\n\nexport function FieldRadioGroup({ ...props }: FieldRadioGroupProps) {\n const field = useFieldContext<string>()\n\n return (\n <RadioGroup\n name={field.name}\n onValueChange={(value) => field.handleChange(String(value))}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FieldRowProps } from './field.types'\n\nexport function FieldRow({ className, ref, ...props }: FieldRowProps) {\n return (\n <div\n className={cn('flex items-center justify-between gap-sm', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Select } from '../select'\nimport type { FieldSelectProps } from './field.types'\n\nexport function FieldSelect({ children, ...props }: FieldSelectProps) {\n const field = useFieldContext()\n\n return (\n <Select value={field.state.value} onValueChange={(value) => field.setValue(value)} {...props}>\n {children}\n </Select>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FieldSetProps } from './field.types'\n\nexport function FieldSet({ className, ref, ...props }: FieldSetProps) {\n return <div className={cn('flex w-full flex-col gap-2xs', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { Slider } from '../slider'\nimport type { FieldSliderProps } from './field.types'\n\nexport function FieldSlider({ className, ref, ...props }: FieldSliderProps) {\n const field = useFieldContext<number | readonly number[]>()\n\n return (\n <Slider\n className={cn('', className)}\n onValueChange={(value) => field.setValue(value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Switch } from '../switch'\nimport type { FieldSwitchProps } from './field.types'\n\nexport function FieldSwitch({ children, ...props }: FieldSwitchProps) {\n const field = useFieldContext<boolean>()\n\n return (\n <Switch\n checked={field.state.value}\n id={field.name}\n name={field.name}\n onCheckedChange={(checked) => field.handleChange(checked)}\n {...props}\n >\n {children}\n </Switch>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useFieldContext } from '../form/form-contexts'\nimport { TextArea } from '../text-area'\nimport type { FieldTextAreaProps } from './field.types'\n\nconst NO_ERRORS = 0\n\nexport function FieldTextArea({ className, ref, ...props }: FieldTextAreaProps) {\n const field = useFieldContext<string>(),\n isInvalid =\n field.state.meta.isTouched &&\n field.state.meta.errors.length > NO_ERRORS &&\n !field.state.meta.isValid\n\n return (\n <TextArea\n aria-invalid={isInvalid}\n className={cn('', className)}\n id={field.name}\n name={field.name}\n onChange={(event) => field.handleChange(event.target.value)}\n ref={ref}\n value={field.state.value}\n {...props}\n />\n )\n}\n","import { useFieldContext } from '../form/form-contexts'\nimport { Toggle } from '../toggle'\nimport type { FieldToggleProps } from './field.types'\n\nexport function FieldToggle({ ...props }: FieldToggleProps) {\n const field = useFieldContext<boolean>()\n\n return (\n <Toggle\n id={field.name}\n name={field.name}\n onChange={(_e) => field.handleChange(!field.state.value)}\n pressed={field.state.value}\n {...props}\n />\n )\n}\n","import { Field as FieldRoot } from './field'\nimport { FieldCheckbox } from './field-checkbox'\nimport { FieldDescription } from './field-description'\nimport { FieldErrors } from './field-errors'\nimport { FieldInput } from './field-input'\nimport { FieldInputGroup } from './field-input-group'\nimport { FieldInputGroupInput } from './field-input-group-input'\nimport { FieldLabel } from './field-label'\nimport { FieldRadio } from './field-radio'\nimport { FieldRadioGroup } from './field-radio-group'\nimport { FieldRow } from './field-row'\nimport { FieldSelect } from './field-select'\nimport { FieldSet } from './field-set'\nimport { FieldSlider } from './field-slider'\nimport { FieldSwitch } from './field-switch'\nimport { FieldTextArea } from './field-text-area'\nimport { FieldToggle } from './field-toggle'\n\nconst Field = Object.assign(FieldRoot, {\n Checkbox: FieldCheckbox,\n Description: FieldDescription,\n Errors: FieldErrors,\n Input: FieldInput,\n InputGroup: FieldInputGroup,\n InputGroupInput: FieldInputGroupInput,\n Label: FieldLabel,\n Radio: FieldRadio,\n RadioGroup: FieldRadioGroup,\n Row: FieldRow,\n Select: FieldSelect,\n Set: FieldSet,\n Slider: FieldSlider,\n Switch: FieldSwitch,\n TextArea: FieldTextArea,\n Toggle: FieldToggle,\n})\n\nexport type {\n FieldDescriptionProps,\n FieldErrorProps,\n FieldInputProps,\n FieldLabelProps,\n FieldProps,\n FieldSelectProps,\n FieldSliderProps,\n FieldTextAreaProps,\n FieldCheckboxProps,\n FieldRadioProps,\n FieldRadioGroupProps,\n FieldSwitchProps,\n FieldToggleProps,\n FieldInputGroupInputProps,\n FieldInputGroupProps,\n FieldSetProps,\n FieldRowProps,\n} from './field.types'\nexport { FieldDescription } from './field-description'\nexport { FieldErrors } from './field-errors'\nexport { FieldInput } from './field-input'\nexport { FieldLabel } from './field-label'\nexport { FieldSlider } from './field-slider'\nexport { FieldSelect } from './field-select'\nexport { FieldTextArea } from './field-text-area'\nexport { FieldCheckbox } from './field-checkbox'\nexport { FieldRadio } from './field-radio'\nexport { FieldRadioGroup } from './field-radio-group'\nexport { FieldSwitch } from './field-switch'\nexport { FieldToggle } from './field-toggle'\nexport { FieldInputGroup } from './field-input-group'\nexport { FieldInputGroupInput } from './field-input-group-input'\nexport { FieldSet } from './field-set'\nexport { FieldRow } from './field-row'\n\nexport { Field }\n"],"mappings":";;;;;;;;;;;;;;AAIA,SAAgBA,QAAM,EAAE,WAAW,UAAU,KAAK,GAAG,SAAqB;CACxE,OACE,oBAAC,OAAD;EAAK,WAAW,GAAG,yBAAyB,SAAS;EAAQ;EAAK,GAAI;EACnE;CACE,CAAA;AAET;;ACRA,MAAa,EAAE,cAAc,iBAAiB,aAAa,mBACzD,uBAAuB;;ACCzB,SAAgB,cAAc,EAAE,UAAU,GAAG,SAA6B;CACxE,MAAM,QAAQ,gBAAyB;CAEvC,OACE,oBAAC,UAAD;EACE,SAAS,MAAM,MAAM;EACrB,IAAI,MAAM;EACV,MAAM,MAAM;EACZ,kBAAkB,YAAY,MAAM,aAAa,OAAO;EACxD,GAAI;EAEH;CACO,CAAA;AAEd;;ACdA,SAAgB,iBAAiB,EAAE,WAAW,KAAK,GAAG,SAAgC;CACpF,OACE,oBAAC,KAAD;EACE,WAAW,GAAG,+CAA+C,SAAS;EACjE;EACL,GAAI;CACL,CAAA;AAEL;;ACPA,MAAMC,cAAY;AAElB,SAAgB,YAAY,EAAE,WAAW,UAAU,KAAK,GAAG,SAA0B;CACnF,MAAM,QAAQ,gBAAgB;CAE9B,IAAI,MAAM,MAAM,KAAK,OAAO,WAAWA,aACrC;CAGF,OACE,qBAAC,MAAD;EAAI,WAAW,GAAG,eAAe,SAAS;EAAQ;EAAK,GAAI;EAA3D,UAAA,CACG,MAAM,MAAM,KAAK,OAAO,KAAK,UAC5B,oBAAC,MAAD;GACE,WAAU;GAGT,UAAA,MAAM;EACL,GAHG,MAAM,OAGT,CACL,GACA,QACC;;AAER;;ACrBA,MAAMC,cAAY;AAElB,SAAgB,WAAW,EAAE,WAAW,KAAK,GAAG,SAA0B;CACxE,MAAM,QAAQ,gBAAwB,GACpC,YACE,MAAM,MAAM,KAAK,aACjB,MAAM,MAAM,KAAK,OAAO,SAASA,eACjC,CAAC,MAAM,MAAM,KAAK;CAEtB,OACE,oBAAC,OAAD;EACE,gBAAc;EACd,WAAW,GAAG,IAAI,SAAS;EAC3B,IAAI,MAAM;EACV,MAAM,MAAM;EACZ,WAAW,UAAU,MAAM,aAAa,MAAM,OAAO,KAAK;EACrD;EACL,OAAO,MAAM,MAAM;EACnB,GAAI;CACL,CAAA;AAEL;;ACrBA,MAAMC,cAAY;AAElB,SAAgB,gBAAgB,EAAE,WAAW,KAAK,GAAG,SAA+B;CAClF,MAAM,QAAQ,gBAAwB,GACpC,YACE,MAAM,MAAM,KAAK,aACjB,MAAM,MAAM,KAAK,OAAO,SAASA,eACjC,CAAC,MAAM,MAAM,KAAK;CAEtB,OACE,oBAAC,YAAD;EACE,gBAAc;EACd,WAAW,GAAG,IAAI,SAAS;EAC3B,IAAI,MAAM;EACL;EACL,GAAI;CACL,CAAA;AAEL;;AClBA,MAAMC,cAAY;AAElB,SAAgB,qBAAqB,EAAE,WAAW,KAAK,GAAG,SAAoC;CAC5F,MAAM,QAAQ,gBAAwB,GACpC,YACE,MAAM,MAAM,KAAK,aACjB,MAAM,MAAM,KAAK,OAAO,SAASA,eACjC,CAAC,MAAM,MAAM,KAAK;CAEtB,OACE,oBAAC,iBAAD;EACE,gBAAc;EACd,WAAW,GAAG,IAAI,SAAS;EAC3B,IAAI,MAAM;EACV,MAAM,MAAM;EACZ,WAAW,UAAU,MAAM,aAAa,MAAM,OAAO,KAAK;EACrD;EACL,OAAO,MAAM,MAAM;EACnB,GAAI;CACL,CAAA;AAEL;;ACOA,MAAa,qBAAqB,IAAI,qBAAqB;CACzD,iBAAiB;EACf,MAAM;EACN,SAAS;CACX;CACA,UAAU;EACR,MAAM;GACJ,OAAO;GACP,QAAQ;GACR,OAAO;EACT;EACA,SAAS;GACP,SAAS;GACT,WAAW;EACb;CACF;AACF,CAAC;;AC5CD,MAAMC,cAAY;AAElB,SAAgB,WAAW,EACzB,MACA,SACA,eAAe,OACf,WACA,UACA,KACA,GAAG,SACe;CAClB,MAAM,QAAQ,gBAAgB,GAC5B,YAAY,MAAM,KACf,QAAQ,qBAAqB,YAAY,CAAC,CAC1C,QAAQ,OAAO,QAAQ,IAAI,YAAY,CAAC,GAC3C,YAAY,MAAM,MAAM,KAAK,OAAO,SAASA;CAE/C,OACE,qBAAC,OAAD;EACE,WAAW,GACT,mBAAmB;GAAE;GAAM;EAAQ,CAAC,GACpC,WACA,aAAa,oBACf;EACK;EACL,GAAI;EAPN,UAAA,CASG,YAAY,WACZ,gBAAgB,oBAAC,QAAD;GAAM,WAAU;GAA4B,UAAA;EAAO,CAAA,CACjE;;AAET;;ACjCA,SAAgB,WAAW,EAAE,GAAG,SAA0B;CACxD,MAAM,QAAQ,gBAAwB;CAEtC,OACE,oBAAC,OAAD;EACE,GAAI;EACJ,WAAW,UAAU;GACnB,IAAI,MAAM,kBAAkB,kBAC1B,MAAM,aAAa,MAAM,OAAO,KAAK;EAEzC;EACA,OAAO,MAAM,MAAM;CACpB,CAAA;AAEL;;ACdA,SAAgB,gBAAgB,EAAE,GAAG,SAA+B;CAClE,MAAM,QAAQ,gBAAwB;CAEtC,OACE,oBAAC,YAAD;EACE,MAAM,MAAM;EACZ,gBAAgB,UAAU,MAAM,aAAa,OAAO,KAAK,CAAC;EAC1D,OAAO,MAAM,MAAM;EACnB,GAAI;CACL,CAAA;AAEL;;ACXA,SAAgB,SAAS,EAAE,WAAW,KAAK,GAAG,SAAwB;CACpE,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,4CAA4C,SAAS;EAC9D;EACL,GAAI;CACL,CAAA;AAEL;;ACRA,SAAgB,YAAY,EAAE,UAAU,GAAG,SAA2B;CACpE,MAAM,QAAQ,gBAAgB;CAE9B,OACE,oBAAC,QAAD;EAAQ,OAAO,MAAM,MAAM;EAAO,gBAAgB,UAAU,MAAM,SAAS,KAAK;EAAG,GAAI;EACpF;CACK,CAAA;AAEZ;;ACRA,SAAgB,SAAS,EAAE,WAAW,KAAK,GAAG,SAAwB;CACpE,OAAO,oBAAC,OAAD;EAAK,WAAW,GAAG,gCAAgC,SAAS;EAAQ;EAAK,GAAI;CAAQ,CAAA;AAC9F;;ACAA,SAAgB,YAAY,EAAE,WAAW,KAAK,GAAG,SAA2B;CAC1E,MAAM,QAAQ,gBAA4C;CAE1D,OACE,oBAAC,QAAD;EACE,WAAW,GAAG,IAAI,SAAS;EAC3B,gBAAgB,UAAU,MAAM,SAAS,KAAK;EACzC;EACL,OAAO,MAAM,MAAM;EACnB,GAAI;CACL,CAAA;AAEL;;ACdA,SAAgB,YAAY,EAAE,UAAU,GAAG,SAA2B;CACpE,MAAM,QAAQ,gBAAyB;CAEvC,OACE,oBAAC,QAAD;EACE,SAAS,MAAM,MAAM;EACrB,IAAI,MAAM;EACV,MAAM,MAAM;EACZ,kBAAkB,YAAY,MAAM,aAAa,OAAO;EACxD,GAAI;EAEH;CACK,CAAA;AAEZ;;ACZA,MAAM,YAAY;AAElB,SAAgB,cAAc,EAAE,WAAW,KAAK,GAAG,SAA6B;CAC9E,MAAM,QAAQ,gBAAwB,GACpC,YACE,MAAM,MAAM,KAAK,aACjB,MAAM,MAAM,KAAK,OAAO,SAAS,aACjC,CAAC,MAAM,MAAM,KAAK;CAEtB,OACE,oBAAC,UAAD;EACE,gBAAc;EACd,WAAW,GAAG,IAAI,SAAS;EAC3B,IAAI,MAAM;EACV,MAAM,MAAM;EACZ,WAAW,UAAU,MAAM,aAAa,MAAM,OAAO,KAAK;EACrD;EACL,OAAO,MAAM,MAAM;EACnB,GAAI;CACL,CAAA;AAEL;;ACvBA,SAAgB,YAAY,EAAE,GAAG,SAA2B;CAC1D,MAAM,QAAQ,gBAAyB;CAEvC,OACE,oBAAC,QAAD;EACE,IAAI,MAAM;EACV,MAAM,MAAM;EACZ,WAAW,OAAO,MAAM,aAAa,CAAC,MAAM,MAAM,KAAK;EACvD,SAAS,MAAM,MAAM;EACrB,GAAI;CACL,CAAA;AAEL;;ACEA,MAAM,QAAQ,OAAO,OAAOC,SAAW;CACrC,UAAU;CACV,aAAa;CACb,QAAQ;CACR,OAAO;CACP,YAAY;CACZ,iBAAiB;CACjB,OAAO;CACP,OAAO;CACP,YAAY;CACZ,KAAK;CACL,QAAQ;CACR,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,QAAQ;AACV,CAAC"}
@@ -1,4 +1,4 @@
1
- import { t as Button } from "../index-bVyqfhJS.js";
1
+ import { t as Button } from "../index-uaJUy56Z.js";
2
2
  import { _ as FieldCheckbox, a as FieldSlider, c as FieldRow, d as FieldLabel, f as FieldInputGroupInput, g as FieldDescription, h as FieldErrors, i as FieldSwitch, l as FieldRadioGroup, m as FieldInput, n as FieldToggle, o as FieldSet, p as FieldInputGroup, r as FieldTextArea, s as FieldSelect, u as FieldRadio } from "../index-CiE-Rqit.js";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  type FormProps$1 = React.ComponentProps<'form'>;
@@ -1,3 +1,3 @@
1
- import { b as useFieldContext, v as fieldContext, x as useFormContext, y as formContext } from "../field-DTL7eA5y.js";
2
- import { a as withForm, c as FormSetContent, d as FormFooter, f as FormErrors, i as withFieldGroup, l as FormSet, n as useAppForm, o as FormSubmit, r as useTypedAppFormContext, s as FormSetHeading, t as Form, u as FormReset } from "../form-BxMg796f.js";
1
+ import { b as useFieldContext, v as fieldContext, x as useFormContext, y as formContext } from "../field-DkMfrmdj.js";
2
+ import { a as withForm, c as FormSetContent, d as FormFooter, f as FormErrors, i as withFieldGroup, l as FormSet, n as useAppForm, o as FormSubmit, r as useTypedAppFormContext, s as FormSetHeading, t as Form, u as FormReset } from "../form-V2VqHn0D.js";
3
3
  export { Form, FormErrors, FormFooter, FormReset, FormSet, FormSetContent, FormSetHeading, FormSubmit, fieldContext, formContext, useAppForm, useFieldContext, useFormContext, useTypedAppFormContext, withFieldGroup, withForm };
@@ -1,8 +1,8 @@
1
1
  import { t as cn } from "./cn-BDi0DfT5.js";
2
2
  import { n as Icon } from "./icon-D3JWfCa2.js";
3
3
  import { i as AlertDescription, n as AlertTitle, r as AlertIcon, t as Alert } from "./alert-Dcu9R8CY.js";
4
- import { t as Button } from "./button-BpUC-R1J.js";
5
- import { _ as FieldCheckbox, a as FieldSlider, c as FieldRow, d as FieldLabel, f as FieldInputGroupInput, g as FieldDescription, h as FieldErrors, i as FieldSwitch, l as FieldRadioGroup, m as FieldInput, n as FieldToggle, o as FieldSet, p as FieldInputGroup, r as FieldTextArea, s as FieldSelect, u as FieldRadio, v as fieldContext, x as useFormContext, y as formContext } from "./field-DTL7eA5y.js";
4
+ import { t as Button } from "./button-DXQvyQyj.js";
5
+ import { _ as FieldCheckbox, a as FieldSlider, c as FieldRow, d as FieldLabel, f as FieldInputGroupInput, g as FieldDescription, h as FieldErrors, i as FieldSwitch, l as FieldRadioGroup, m as FieldInput, n as FieldToggle, o as FieldSet, p as FieldInputGroup, r as FieldTextArea, s as FieldSelect, u as FieldRadio, v as fieldContext, x as useFormContext, y as formContext } from "./field-DkMfrmdj.js";
6
6
  import { cva } from "class-variance-authority";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  import { createFormHook } from "@tanstack/react-form";
@@ -189,4 +189,4 @@ const Form = Object.assign(Form$1, {
189
189
  });
190
190
  export { withForm as a, FormSetContent as c, FormFooter as d, FormErrors as f, withFieldGroup as i, FormSet as l, useAppForm as n, FormSubmit as o, useTypedAppFormContext as r, FormSetHeading as s, Form as t, FormReset as u };
191
191
 
192
- //# sourceMappingURL=form-BxMg796f.js.map
192
+ //# sourceMappingURL=form-V2VqHn0D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-BxMg796f.js","names":["Form","FormRoot"],"sources":["../src/components/form/form.tsx","../src/components/form/form-errors.tsx","../src/components/form/form-footer.tsx","../src/components/form/form-reset.tsx","../src/components/form/form-set.tsx","../src/components/form/form-set-content.tsx","../src/components/form/form.types.ts","../src/components/form/form-set-heading.tsx","../src/components/form/form-submit.tsx","../src/components/form/form-context.tsx","../src/components/form/index.ts"],"sourcesContent":["import { cn } from '@/utils/cn'\n\ntype FormProps = React.ComponentProps<'form'>\n\nexport function Form({ className, ref, ...props }: FormProps) {\n return <form className={cn('flex flex-col gap-sm', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { Alert, AlertDescription, AlertIcon, AlertTitle } from '../alert'\nimport { Icon } from '../icon'\nimport { useFormContext } from './form-contexts'\nimport type { FormErrorsProps } from './form.types'\n\nconst collectObjectMessages = (value: object, acc: Set<string>) => {\n const { message } = value as { message?: unknown }\n if (typeof message === 'string') {\n acc.add(message)\n return\n }\n Object.values(value).forEach((nestedValue) => collectMessages(nestedValue, acc))\n },\n collectStringMessage = (value: string, acc: Set<string>) => {\n if (value.trim()) {\n acc.add(value)\n }\n },\n collectMessages = (value: unknown, acc: Set<string>) => {\n if (value == undefined) {\n return\n }\n if (typeof value === 'string') {\n collectStringMessage(value, acc)\n return\n }\n if (Array.isArray(value)) {\n value.forEach((inputValue) => collectMessages(inputValue, acc))\n return\n }\n if (typeof value === 'object') {\n collectObjectMessages(value, acc)\n }\n }\n\nexport function FormErrors({ className, children, ref, ...props }: FormErrorsProps) {\n const form = useFormContext()\n\n return (\n <form.Subscribe selector={(state) => [state.errors, state.fieldMeta]}>\n {([errors, fieldMeta]) => {\n const messages = new Set<string>()\n collectMessages(errors, messages)\n Object.values(fieldMeta as Record<string, { errors?: unknown }>).forEach((meta) =>\n collectMessages(meta.errors, messages),\n )\n\n if (!messages.size) {\n return undefined\n }\n\n return (\n <Alert className={cn('', className)} ref={ref} tone=\"error\" {...props}>\n <AlertIcon>\n <Icon name=\"fieldError\" />\n </AlertIcon>\n <AlertTitle>{children}</AlertTitle>\n <AlertDescription>\n <ul className=\"list-inside list-disc has-[>:only-child]:list-none\">\n {[...messages].map((message) => (\n <li key={message}>{message}</li>\n ))}\n </ul>\n </AlertDescription>\n </Alert>\n )\n }}\n </form.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormFooterProps } from './form.types'\n\nexport function FormFooter({\n orientation = 'horizontal',\n className,\n ref,\n ...props\n}: FormFooterProps) {\n return (\n <div\n className={cn(\n 'flex gap-2xs',\n className,\n orientation === 'horizontal' && 'flex-row',\n orientation === 'vertical' && 'flex-col',\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { useFormContext } from './form-contexts'\nimport type { FormResetProps } from './form.types'\n\nexport function FormReset({ className, ref, ...props }: FormResetProps) {\n const form = useFormContext(),\n handleClick = () => {\n form.reset()\n }\n\n return (\n <form.Subscribe selector={(state) => state}>\n {(state) => (\n <Button\n className={cn('w-full', className)}\n disabled={!state.values}\n onClick={handleClick}\n ref={ref}\n variant=\"outline\"\n tone=\"neutral\"\n type=\"reset\"\n {...props}\n />\n )}\n </form.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormSetProps } from './form.types'\n\nexport function FormSet({ className, ref, ...props }: FormSetProps) {\n return <div className={cn('flex flex-col gap-xs', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormSetContentProps } from './form.types'\n\nexport function FormSetContent({ className, ref, ...props }: FormSetContentProps) {\n return <div className={cn('flex flex-col gap-md', className)} ref={ref} {...props} />\n}\n","import { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport type { Button } from '../button'\n\ntype FormProps = React.ComponentProps<'form'>\ntype FormSubmitProps = React.ComponentProps<typeof Button>\ntype FormResetProps = React.ComponentProps<typeof Button>\ntype FormErrorsProps = React.ComponentProps<'div'> & {\n headerLabel?: string\n}\ntype FormSetProps = React.ComponentProps<'div'>\ntype FormSetHeadingProps = React.ComponentProps<'span'> &\n VariantProps<typeof formSetHeadingVariants>\ntype FormSetContentProps = React.ComponentProps<'div'>\ntype FormFooterProps = React.ComponentProps<'div'> & {\n orientation?: 'horizontal' | 'vertical'\n}\n\nconst formSetHeadingVariants = cva('', {\n defaultVariants: {\n size: 'medium',\n },\n variants: {\n size: {\n large: 'style-text-strong-2',\n medium: 'style-text-strong-1',\n small: 'style-text-strong-0',\n },\n },\n})\n\nexport type {\n FormProps,\n FormSubmitProps,\n FormResetProps,\n FormErrorsProps,\n FormSetProps,\n FormSetHeadingProps,\n FormSetContentProps,\n FormFooterProps,\n}\nexport { formSetHeadingVariants }\n","import { cn } from '@/utils/cn'\n\nimport { formSetHeadingVariants } from './form.types'\nimport type { FormSetHeadingProps } from './form.types'\n\nexport function FormSetHeading({ size, className, ref, ...props }: FormSetHeadingProps) {\n return <span className={cn(formSetHeadingVariants({ className, size }))} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useFormContext } from './form-contexts'\nimport type { FormSubmitProps } from './form.types'\n\nexport function FormSubmit({ className, children, ref, ...props }: FormSubmitProps) {\n const form = useFormContext()\n\n return (\n <form.Subscribe selector={(state) => state}>\n {(state) => (\n <Button\n className={cn('w-full', className)}\n disabled={state.isSubmitting || !state.canSubmit}\n ref={ref}\n type=\"submit\"\n {...props}\n >\n {state.isSubmitting && <Icon name=\"spinner\" className=\"animate-spin\" />}\n {!state.isSubmitting && children}\n </Button>\n )}\n </form.Subscribe>\n )\n}\n","import { createFormHook } from '@tanstack/react-form'\n\nimport {\n FieldCheckbox,\n FieldDescription,\n FieldErrors,\n FieldInput,\n FieldInputGroup,\n FieldInputGroupInput,\n FieldLabel,\n FieldRadio,\n FieldRadioGroup,\n FieldSelect,\n FieldSet,\n FieldSlider,\n FieldSwitch,\n FieldTextArea,\n FieldToggle,\n} from '../field'\nimport { FieldRow } from '../field/field-row'\nimport { fieldContext, formContext } from './form-contexts'\nimport { FormErrors } from './form-errors'\nimport { FormFooter } from './form-footer'\nimport { FormReset } from './form-reset'\nimport { FormSet } from './form-set'\nimport { FormSetContent } from './form-set-content'\nimport { FormSetHeading } from './form-set-heading'\nimport { FormSubmit } from './form-submit'\n\nexport { fieldContext, formContext, useFieldContext, useFormContext } from './form-contexts'\n\nexport const { useAppForm, withFieldGroup, withForm, useTypedAppFormContext } = createFormHook({\n fieldComponents: {\n Checkbox: FieldCheckbox,\n Description: FieldDescription,\n Errors: FieldErrors,\n Input: FieldInput,\n InputGroup: FieldInputGroup,\n InputGroupInput: FieldInputGroupInput,\n Label: FieldLabel,\n Radio: FieldRadio,\n RadioGroup: FieldRadioGroup,\n Row: FieldRow,\n Select: FieldSelect,\n Set: FieldSet,\n Slider: FieldSlider,\n Switch: FieldSwitch,\n TextArea: FieldTextArea,\n Toggle: FieldToggle,\n },\n fieldContext,\n formComponents: {\n Errors: FormErrors,\n Footer: FormFooter,\n Reset: FormReset,\n Set: FormSet,\n SetContent: FormSetContent,\n SetHeading: FormSetHeading,\n Submit: FormSubmit,\n },\n formContext,\n})\n","import { Form as FormRoot } from './form'\nimport { FormErrors } from './form-errors'\nimport { FormFooter } from './form-footer'\nimport { FormReset } from './form-reset'\nimport { FormSet } from './form-set'\nimport { FormSetContent } from './form-set-content'\nimport { FormSetHeading } from './form-set-heading'\nimport { FormSubmit } from './form-submit'\n\nconst Form = Object.assign(FormRoot, {\n Errors: FormErrors,\n Footer: FormFooter,\n Reset: FormReset,\n Set: FormSet,\n SetContent: FormSetContent,\n SetHeading: FormSetHeading,\n Submit: FormSubmit,\n})\n\nexport type { FormErrorsProps, FormProps, FormResetProps, FormSubmitProps } from './form.types'\nexport {\n fieldContext,\n formContext,\n useAppForm,\n useFieldContext,\n useFormContext,\n useTypedAppFormContext,\n withFieldGroup,\n withForm,\n} from './form-context'\nexport { FormErrors } from './form-errors'\nexport { FormReset } from './form-reset'\nexport { FormSubmit } from './form-submit'\nexport { FormFooter } from './form-footer'\nexport { FormSet } from './form-set'\nexport { FormSetContent } from './form-set-content'\nexport { FormSetHeading } from './form-set-heading'\n\nexport { Form }\n"],"mappings":"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"}
1
+ {"version":3,"file":"form-V2VqHn0D.js","names":["Form","FormRoot"],"sources":["../src/components/form/form.tsx","../src/components/form/form-errors.tsx","../src/components/form/form-footer.tsx","../src/components/form/form-reset.tsx","../src/components/form/form-set.tsx","../src/components/form/form-set-content.tsx","../src/components/form/form.types.ts","../src/components/form/form-set-heading.tsx","../src/components/form/form-submit.tsx","../src/components/form/form-context.tsx","../src/components/form/index.ts"],"sourcesContent":["import { cn } from '@/utils/cn'\n\ntype FormProps = React.ComponentProps<'form'>\n\nexport function Form({ className, ref, ...props }: FormProps) {\n return <form className={cn('flex flex-col gap-sm', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { Alert, AlertDescription, AlertIcon, AlertTitle } from '../alert'\nimport { Icon } from '../icon'\nimport { useFormContext } from './form-contexts'\nimport type { FormErrorsProps } from './form.types'\n\nconst collectObjectMessages = (value: object, acc: Set<string>) => {\n const { message } = value as { message?: unknown }\n if (typeof message === 'string') {\n acc.add(message)\n return\n }\n Object.values(value).forEach((nestedValue) => collectMessages(nestedValue, acc))\n },\n collectStringMessage = (value: string, acc: Set<string>) => {\n if (value.trim()) {\n acc.add(value)\n }\n },\n collectMessages = (value: unknown, acc: Set<string>) => {\n if (value == undefined) {\n return\n }\n if (typeof value === 'string') {\n collectStringMessage(value, acc)\n return\n }\n if (Array.isArray(value)) {\n value.forEach((inputValue) => collectMessages(inputValue, acc))\n return\n }\n if (typeof value === 'object') {\n collectObjectMessages(value, acc)\n }\n }\n\nexport function FormErrors({ className, children, ref, ...props }: FormErrorsProps) {\n const form = useFormContext()\n\n return (\n <form.Subscribe selector={(state) => [state.errors, state.fieldMeta]}>\n {([errors, fieldMeta]) => {\n const messages = new Set<string>()\n collectMessages(errors, messages)\n Object.values(fieldMeta as Record<string, { errors?: unknown }>).forEach((meta) =>\n collectMessages(meta.errors, messages),\n )\n\n if (!messages.size) {\n return undefined\n }\n\n return (\n <Alert className={cn('', className)} ref={ref} tone=\"error\" {...props}>\n <AlertIcon>\n <Icon name=\"fieldError\" />\n </AlertIcon>\n <AlertTitle>{children}</AlertTitle>\n <AlertDescription>\n <ul className=\"list-inside list-disc has-[>:only-child]:list-none\">\n {[...messages].map((message) => (\n <li key={message}>{message}</li>\n ))}\n </ul>\n </AlertDescription>\n </Alert>\n )\n }}\n </form.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormFooterProps } from './form.types'\n\nexport function FormFooter({\n orientation = 'horizontal',\n className,\n ref,\n ...props\n}: FormFooterProps) {\n return (\n <div\n className={cn(\n 'flex gap-2xs',\n className,\n orientation === 'horizontal' && 'flex-row',\n orientation === 'vertical' && 'flex-col',\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { useFormContext } from './form-contexts'\nimport type { FormResetProps } from './form.types'\n\nexport function FormReset({ className, ref, ...props }: FormResetProps) {\n const form = useFormContext(),\n handleClick = () => {\n form.reset()\n }\n\n return (\n <form.Subscribe selector={(state) => state}>\n {(state) => (\n <Button\n className={cn('w-full', className)}\n disabled={!state.values}\n onClick={handleClick}\n ref={ref}\n variant=\"outline\"\n tone=\"neutral\"\n type=\"reset\"\n {...props}\n />\n )}\n </form.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormSetProps } from './form.types'\n\nexport function FormSet({ className, ref, ...props }: FormSetProps) {\n return <div className={cn('flex flex-col gap-xs', className)} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport type { FormSetContentProps } from './form.types'\n\nexport function FormSetContent({ className, ref, ...props }: FormSetContentProps) {\n return <div className={cn('flex flex-col gap-md', className)} ref={ref} {...props} />\n}\n","import { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nimport type { Button } from '../button'\n\ntype FormProps = React.ComponentProps<'form'>\ntype FormSubmitProps = React.ComponentProps<typeof Button>\ntype FormResetProps = React.ComponentProps<typeof Button>\ntype FormErrorsProps = React.ComponentProps<'div'> & {\n headerLabel?: string\n}\ntype FormSetProps = React.ComponentProps<'div'>\ntype FormSetHeadingProps = React.ComponentProps<'span'> &\n VariantProps<typeof formSetHeadingVariants>\ntype FormSetContentProps = React.ComponentProps<'div'>\ntype FormFooterProps = React.ComponentProps<'div'> & {\n orientation?: 'horizontal' | 'vertical'\n}\n\nconst formSetHeadingVariants = cva('', {\n defaultVariants: {\n size: 'medium',\n },\n variants: {\n size: {\n large: 'style-text-strong-2',\n medium: 'style-text-strong-1',\n small: 'style-text-strong-0',\n },\n },\n})\n\nexport type {\n FormProps,\n FormSubmitProps,\n FormResetProps,\n FormErrorsProps,\n FormSetProps,\n FormSetHeadingProps,\n FormSetContentProps,\n FormFooterProps,\n}\nexport { formSetHeadingVariants }\n","import { cn } from '@/utils/cn'\n\nimport { formSetHeadingVariants } from './form.types'\nimport type { FormSetHeadingProps } from './form.types'\n\nexport function FormSetHeading({ size, className, ref, ...props }: FormSetHeadingProps) {\n return <span className={cn(formSetHeadingVariants({ className, size }))} ref={ref} {...props} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useFormContext } from './form-contexts'\nimport type { FormSubmitProps } from './form.types'\n\nexport function FormSubmit({ className, children, ref, ...props }: FormSubmitProps) {\n const form = useFormContext()\n\n return (\n <form.Subscribe selector={(state) => state}>\n {(state) => (\n <Button\n className={cn('w-full', className)}\n disabled={state.isSubmitting || !state.canSubmit}\n ref={ref}\n type=\"submit\"\n {...props}\n >\n {state.isSubmitting && <Icon name=\"spinner\" className=\"animate-spin\" />}\n {!state.isSubmitting && children}\n </Button>\n )}\n </form.Subscribe>\n )\n}\n","import { createFormHook } from '@tanstack/react-form'\n\nimport {\n FieldCheckbox,\n FieldDescription,\n FieldErrors,\n FieldInput,\n FieldInputGroup,\n FieldInputGroupInput,\n FieldLabel,\n FieldRadio,\n FieldRadioGroup,\n FieldSelect,\n FieldSet,\n FieldSlider,\n FieldSwitch,\n FieldTextArea,\n FieldToggle,\n} from '../field'\nimport { FieldRow } from '../field/field-row'\nimport { fieldContext, formContext } from './form-contexts'\nimport { FormErrors } from './form-errors'\nimport { FormFooter } from './form-footer'\nimport { FormReset } from './form-reset'\nimport { FormSet } from './form-set'\nimport { FormSetContent } from './form-set-content'\nimport { FormSetHeading } from './form-set-heading'\nimport { FormSubmit } from './form-submit'\n\nexport { fieldContext, formContext, useFieldContext, useFormContext } from './form-contexts'\n\nexport const { useAppForm, withFieldGroup, withForm, useTypedAppFormContext } = createFormHook({\n fieldComponents: {\n Checkbox: FieldCheckbox,\n Description: FieldDescription,\n Errors: FieldErrors,\n Input: FieldInput,\n InputGroup: FieldInputGroup,\n InputGroupInput: FieldInputGroupInput,\n Label: FieldLabel,\n Radio: FieldRadio,\n RadioGroup: FieldRadioGroup,\n Row: FieldRow,\n Select: FieldSelect,\n Set: FieldSet,\n Slider: FieldSlider,\n Switch: FieldSwitch,\n TextArea: FieldTextArea,\n Toggle: FieldToggle,\n },\n fieldContext,\n formComponents: {\n Errors: FormErrors,\n Footer: FormFooter,\n Reset: FormReset,\n Set: FormSet,\n SetContent: FormSetContent,\n SetHeading: FormSetHeading,\n Submit: FormSubmit,\n },\n formContext,\n})\n","import { Form as FormRoot } from './form'\nimport { FormErrors } from './form-errors'\nimport { FormFooter } from './form-footer'\nimport { FormReset } from './form-reset'\nimport { FormSet } from './form-set'\nimport { FormSetContent } from './form-set-content'\nimport { FormSetHeading } from './form-set-heading'\nimport { FormSubmit } from './form-submit'\n\nconst Form = Object.assign(FormRoot, {\n Errors: FormErrors,\n Footer: FormFooter,\n Reset: FormReset,\n Set: FormSet,\n SetContent: FormSetContent,\n SetHeading: FormSetHeading,\n Submit: FormSubmit,\n})\n\nexport type { FormErrorsProps, FormProps, FormResetProps, FormSubmitProps } from './form.types'\nexport {\n fieldContext,\n formContext,\n useAppForm,\n useFieldContext,\n useFormContext,\n useTypedAppFormContext,\n withFieldGroup,\n withForm,\n} from './form-context'\nexport { FormErrors } from './form-errors'\nexport { FormReset } from './form-reset'\nexport { FormSubmit } from './form-submit'\nexport { FormFooter } from './form-footer'\nexport { FormSet } from './form-set'\nexport { FormSetContent } from './form-set-content'\nexport { FormSetHeading } from './form-set-heading'\n\nexport { Form }\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as Button } from "./index-bVyqfhJS.js";
1
+ import { t as Button } from "./index-uaJUy56Z.js";
2
2
  import { VariantProps } from "class-variance-authority";
3
3
  import { Popover } from "@base-ui/react/popover";
4
4
  declare const popoverPanelVariants: (props?: ({
@@ -30,4 +30,4 @@ declare const Popover$1: typeof Popover$2 & {
30
30
  Trigger: typeof PopoverTrigger;
31
31
  };
32
32
  export { popoverHandle as _, PopoverHeader as a, PopoverButton as c, PopoverDescriptionProps as d, PopoverHeaderProps as f, PopoverTriggerProps as g, PopoverTitleProps as h, PopoverPanel as i, PopoverButtonProps as l, PopoverProps as m, PopoverTrigger as n, PopoverDescription as o, PopoverPanelProps as p, PopoverTitle as r, PopoverContent as s, Popover$1 as t, PopoverContentProps as u };
33
- //# sourceMappingURL=index-DfNHJF0t.d.ts.map
33
+ //# sourceMappingURL=index-B0Qz4Egw.d.ts.map
@@ -1,11 +1,11 @@
1
+ import { t as ButtonProps } from "./button.types-BFKrBCGd.js";
1
2
  import { VariantProps } from "class-variance-authority";
2
3
  declare const buttonGroupVariants: (props?: ({
3
4
  orientation?: "horizontal" | "vertical" | null | undefined;
4
- size?: "extraSmall" | "large" | "medium" | "small" | null | undefined;
5
5
  tone?: "accent" | "brand" | "error" | "info" | "neutral" | "success" | "warning" | null | undefined;
6
6
  variant?: "elevated" | "fill" | "ghost" | "outline" | "secondary" | "soft" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- type ButtonGroupProps = React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>;
8
+ type ButtonGroupProps = React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants> & Pick<ButtonProps, 'size'>;
9
9
  declare function ButtonGroup({ size, variant, tone, orientation, className, ref, ...props }: ButtonGroupProps): import("react").JSX.Element;
10
10
  export { ButtonGroupProps as n, ButtonGroup as t };
11
- //# sourceMappingURL=index-B3MK1QYh.d.ts.map
11
+ //# sourceMappingURL=index-CpNMNewO.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { t as Button } from "./index-uaJUy56Z.js";
2
+ type CopyButtonProps = Omit<React.ComponentProps<typeof Button>, 'children'> & {
3
+ children: (copied: boolean) => React.ReactNode;
4
+ content: string;
5
+ timeout?: number;
6
+ };
7
+ declare function CopyButton({ content, className, children, ref, timeout, ...props }: CopyButtonProps): import("react").JSX.Element;
8
+ export { CopyButtonProps as n, CopyButton as t };
9
+ //# sourceMappingURL=index-DVMheqs_.d.ts.map
@@ -1,4 +1,4 @@
1
- import { t as Button } from "./index-bVyqfhJS.js";
1
+ import { t as Button } from "./index-uaJUy56Z.js";
2
2
  import { Collapsible } from "@base-ui/react/collapsible";
3
3
  type CollapsibleProps = React.ComponentProps<typeof Collapsible.Root>;
4
4
  type CollapsibleTriggerProps = React.ComponentProps<typeof Button>;
@@ -11,4 +11,4 @@ declare const Collapsible$1: typeof Collapsible$2 & {
11
11
  Trigger: typeof CollapsibleTrigger;
12
12
  };
13
13
  export { CollapsibleProps as a, CollapsiblePanelProps as i, CollapsibleTrigger as n, CollapsibleTriggerProps as o, CollapsiblePanel as r, Collapsible$1 as t };
14
- //# sourceMappingURL=index-N2CBSUDu.d.ts.map
14
+ //# sourceMappingURL=index-DXDObRKO.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { t as ButtonProps } from "./button.types-BFKrBCGd.js";
2
+ declare function Button(buttonProps: ButtonProps): import("react").JSX.Element;
3
+ export { Button as t };
4
+ //# sourceMappingURL=index-uaJUy56Z.d.ts.map
@@ -1 +1 @@
1
- export { t as Input } from "../input-Laj6dwtK.js";
1
+ export { t as Input } from "../input-Czt30vp7.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./cn-BDi0DfT5.js";
2
2
  import { n as Icon } from "./icon-D3JWfCa2.js";
3
- import { t as Button } from "./button-BpUC-R1J.js";
3
+ import { t as Button } from "./button-DXQvyQyj.js";
4
4
  import { n as inputVariants, t as formatFileSize } from "./input.types-D0gyoaQv.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { useRef, useState } from "react";
@@ -176,4 +176,4 @@ function Input$1({ fileUploadButtonIcon = defaultFileUploadButtonIcon, fileUploa
176
176
  }
177
177
  export { Input$1 as t };
178
178
 
179
- //# sourceMappingURL=input-Laj6dwtK.js.map
179
+ //# sourceMappingURL=input-Czt30vp7.js.map