@wow-two-beta/ui 0.0.7 → 0.0.8
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.
- package/dist/actions/buttonGroup/ButtonGroup.d.ts +14 -0
- package/dist/actions/buttonGroup/ButtonGroup.d.ts.map +1 -0
- package/dist/actions/buttonGroup/index.d.ts +2 -0
- package/dist/actions/buttonGroup/index.d.ts.map +1 -0
- package/dist/actions/copyButton/CopyButton.d.ts +20 -0
- package/dist/actions/copyButton/CopyButton.d.ts.map +1 -0
- package/dist/actions/copyButton/index.d.ts +2 -0
- package/dist/actions/copyButton/index.d.ts.map +1 -0
- package/dist/actions/disclosureButton/DisclosureButton.d.ts +20 -0
- package/dist/actions/disclosureButton/DisclosureButton.d.ts.map +1 -0
- package/dist/actions/disclosureButton/index.d.ts +2 -0
- package/dist/actions/disclosureButton/index.d.ts.map +1 -0
- package/dist/actions/fab/FAB.d.ts +13 -0
- package/dist/actions/fab/FAB.d.ts.map +1 -0
- package/dist/actions/fab/FAB.variants.d.ts +130 -0
- package/dist/actions/fab/FAB.variants.d.ts.map +1 -0
- package/dist/actions/fab/index.d.ts +3 -0
- package/dist/actions/fab/index.d.ts.map +1 -0
- package/dist/actions/index.d.ts +8 -0
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +4 -1
- package/dist/actions/overlayButton/OverlayButton.d.ts +16 -0
- package/dist/actions/overlayButton/OverlayButton.d.ts.map +1 -0
- package/dist/actions/overlayButton/OverlayButton.variants.d.ts +123 -0
- package/dist/actions/overlayButton/OverlayButton.variants.d.ts.map +1 -0
- package/dist/actions/overlayButton/index.d.ts +3 -0
- package/dist/actions/overlayButton/index.d.ts.map +1 -0
- package/dist/actions/segmentedControl/SegmentedControl.d.ts +9 -0
- package/dist/actions/segmentedControl/SegmentedControl.d.ts.map +1 -0
- package/dist/actions/segmentedControl/index.d.ts +2 -0
- package/dist/actions/segmentedControl/index.d.ts.map +1 -0
- package/dist/actions/toggleButton/ToggleButton.d.ts +16 -0
- package/dist/actions/toggleButton/ToggleButton.d.ts.map +1 -0
- package/dist/actions/toggleButton/ToggleButton.variants.d.ts +81 -0
- package/dist/actions/toggleButton/ToggleButton.variants.d.ts.map +1 -0
- package/dist/actions/toggleButton/index.d.ts +3 -0
- package/dist/actions/toggleButton/index.d.ts.map +1 -0
- package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +25 -0
- package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts.map +1 -0
- package/dist/actions/toggleButtonGroup/index.d.ts +2 -0
- package/dist/actions/toggleButtonGroup/index.d.ts.map +1 -0
- package/dist/{chunk-6NYTRHP7.js → chunk-4P2TFUVW.js} +39 -5
- package/dist/chunk-4P2TFUVW.js.map +1 -0
- package/dist/chunk-7SGLT2LM.js +774 -0
- package/dist/chunk-7SGLT2LM.js.map +1 -0
- package/dist/chunk-D5CHR6RX.js +423 -0
- package/dist/chunk-D5CHR6RX.js.map +1 -0
- package/dist/{chunk-77WSI427.js → chunk-KDXJQNB6.js} +9 -5
- package/dist/chunk-KDXJQNB6.js.map +1 -0
- package/dist/chunk-L32PXXQL.js +126 -0
- package/dist/chunk-L32PXXQL.js.map +1 -0
- package/dist/{chunk-SYG6ZE42.js → chunk-NKGNOOXJ.js} +116 -4
- package/dist/chunk-NKGNOOXJ.js.map +1 -0
- package/dist/chunk-RIW2V3N4.js +596 -0
- package/dist/chunk-RIW2V3N4.js.map +1 -0
- package/dist/{chunk-JCMV6IT4.js → chunk-SL5YJADS.js} +4 -4
- package/dist/{chunk-JCMV6IT4.js.map → chunk-SL5YJADS.js.map} +1 -1
- package/dist/{chunk-Q27NAHVB.js → chunk-WEM32VIJ.js} +3 -3
- package/dist/{chunk-Q27NAHVB.js.map → chunk-WEM32VIJ.js.map} +1 -1
- package/dist/{chunk-TDEEVNSD.js → chunk-X2LTOZ7F.js} +522 -7
- package/dist/chunk-X2LTOZ7F.js.map +1 -0
- package/dist/display/avatarGroup/AvatarGroup.d.ts +16 -0
- package/dist/display/avatarGroup/AvatarGroup.d.ts.map +1 -0
- package/dist/display/avatarGroup/index.d.ts +2 -0
- package/dist/display/avatarGroup/index.d.ts.map +1 -0
- package/dist/display/badgeOverlay/BadgeOverlay.d.ts +18 -0
- package/dist/display/badgeOverlay/BadgeOverlay.d.ts.map +1 -0
- package/dist/display/badgeOverlay/index.d.ts +2 -0
- package/dist/display/badgeOverlay/index.d.ts.map +1 -0
- package/dist/display/card/Card.d.ts +20 -0
- package/dist/display/card/Card.d.ts.map +1 -0
- package/dist/display/card/index.d.ts +2 -0
- package/dist/display/card/index.d.ts.map +1 -0
- package/dist/display/countBadge/CountBadge.d.ts +18 -0
- package/dist/display/countBadge/CountBadge.d.ts.map +1 -0
- package/dist/display/countBadge/index.d.ts +2 -0
- package/dist/display/countBadge/index.d.ts.map +1 -0
- package/dist/display/descriptionList/DescriptionList.d.ts +18 -0
- package/dist/display/descriptionList/DescriptionList.d.ts.map +1 -0
- package/dist/display/descriptionList/index.d.ts +2 -0
- package/dist/display/descriptionList/index.d.ts.map +1 -0
- package/dist/display/emptyState/EmptyState.d.ts +19 -0
- package/dist/display/emptyState/EmptyState.d.ts.map +1 -0
- package/dist/display/emptyState/index.d.ts +2 -0
- package/dist/display/emptyState/index.d.ts.map +1 -0
- package/dist/display/highlight/Highlight.d.ts +16 -0
- package/dist/display/highlight/Highlight.d.ts.map +1 -0
- package/dist/display/highlight/index.d.ts +2 -0
- package/dist/display/highlight/index.d.ts.map +1 -0
- package/dist/display/index.d.ts +15 -0
- package/dist/display/index.d.ts.map +1 -1
- package/dist/display/index.js +7 -2
- package/dist/display/infoRow/InfoRow.d.ts +16 -0
- package/dist/display/infoRow/InfoRow.d.ts.map +1 -0
- package/dist/display/infoRow/index.d.ts +2 -0
- package/dist/display/infoRow/index.d.ts.map +1 -0
- package/dist/display/keyboardShortcut/KeyboardShortcut.d.ts +13 -0
- package/dist/display/keyboardShortcut/KeyboardShortcut.d.ts.map +1 -0
- package/dist/display/keyboardShortcut/index.d.ts +2 -0
- package/dist/display/keyboardShortcut/index.d.ts.map +1 -0
- package/dist/display/notificationDot/NotificationDot.d.ts +15 -0
- package/dist/display/notificationDot/NotificationDot.d.ts.map +1 -0
- package/dist/display/notificationDot/index.d.ts +2 -0
- package/dist/display/notificationDot/index.d.ts.map +1 -0
- package/dist/display/sectionHeader/SectionHeader.d.ts +21 -0
- package/dist/display/sectionHeader/SectionHeader.d.ts.map +1 -0
- package/dist/display/sectionHeader/index.d.ts +2 -0
- package/dist/display/sectionHeader/index.d.ts.map +1 -0
- package/dist/display/snippet/Snippet.d.ts +15 -0
- package/dist/display/snippet/Snippet.d.ts.map +1 -0
- package/dist/display/snippet/index.d.ts +2 -0
- package/dist/display/snippet/index.d.ts.map +1 -0
- package/dist/display/stat/Stat.d.ts +22 -0
- package/dist/display/stat/Stat.d.ts.map +1 -0
- package/dist/display/stat/index.d.ts +2 -0
- package/dist/display/stat/index.d.ts.map +1 -0
- package/dist/display/status/Status.d.ts +14 -0
- package/dist/display/status/Status.d.ts.map +1 -0
- package/dist/display/status/index.d.ts +2 -0
- package/dist/display/status/index.d.ts.map +1 -0
- package/dist/display/tooltip/Tooltip.d.ts +25 -0
- package/dist/display/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/display/tooltip/index.d.ts +2 -0
- package/dist/display/tooltip/index.d.ts.map +1 -0
- package/dist/feedback/alert/Alert.d.ts +22 -0
- package/dist/feedback/alert/Alert.d.ts.map +1 -0
- package/dist/feedback/alert/index.d.ts +2 -0
- package/dist/feedback/alert/index.d.ts.map +1 -0
- package/dist/feedback/banner/Banner.d.ts +16 -0
- package/dist/feedback/banner/Banner.d.ts.map +1 -0
- package/dist/feedback/banner/index.d.ts +2 -0
- package/dist/feedback/banner/index.d.ts.map +1 -0
- package/dist/feedback/callout/Callout.d.ts +13 -0
- package/dist/feedback/callout/Callout.d.ts.map +1 -0
- package/dist/feedback/callout/index.d.ts +2 -0
- package/dist/feedback/callout/index.d.ts.map +1 -0
- package/dist/feedback/index.d.ts +10 -0
- package/dist/feedback/index.d.ts.map +1 -1
- package/dist/feedback/index.js +2 -1
- package/dist/feedback/inlineSpinner/InlineSpinner.d.ts +14 -0
- package/dist/feedback/inlineSpinner/InlineSpinner.d.ts.map +1 -0
- package/dist/feedback/inlineSpinner/index.d.ts +2 -0
- package/dist/feedback/inlineSpinner/index.d.ts.map +1 -0
- package/dist/feedback/loadingState/LoadingState.d.ts +15 -0
- package/dist/feedback/loadingState/LoadingState.d.ts.map +1 -0
- package/dist/feedback/loadingState/index.d.ts +2 -0
- package/dist/feedback/loadingState/index.d.ts.map +1 -0
- package/dist/feedback/meterBar/MeterBar.d.ts +18 -0
- package/dist/feedback/meterBar/MeterBar.d.ts.map +1 -0
- package/dist/feedback/meterBar/index.d.ts +2 -0
- package/dist/feedback/meterBar/index.d.ts.map +1 -0
- package/dist/feedback/progressSteps/ProgressSteps.d.ts +16 -0
- package/dist/feedback/progressSteps/ProgressSteps.d.ts.map +1 -0
- package/dist/feedback/progressSteps/index.d.ts +2 -0
- package/dist/feedback/progressSteps/index.d.ts.map +1 -0
- package/dist/feedback/statusIndicator/StatusIndicator.d.ts +17 -0
- package/dist/feedback/statusIndicator/StatusIndicator.d.ts.map +1 -0
- package/dist/feedback/statusIndicator/index.d.ts +2 -0
- package/dist/feedback/statusIndicator/index.d.ts.map +1 -0
- package/dist/feedback/toast/Toast.d.ts +16 -0
- package/dist/feedback/toast/Toast.d.ts.map +1 -0
- package/dist/feedback/toast/index.d.ts +2 -0
- package/dist/feedback/toast/index.d.ts.map +1 -0
- package/dist/feedback/trendIndicator/TrendIndicator.d.ts +18 -0
- package/dist/feedback/trendIndicator/TrendIndicator.d.ts.map +1 -0
- package/dist/feedback/trendIndicator/index.d.ts +2 -0
- package/dist/feedback/trendIndicator/index.d.ts.map +1 -0
- package/dist/forms/characterCount/CharacterCount.d.ts +15 -0
- package/dist/forms/characterCount/CharacterCount.d.ts.map +1 -0
- package/dist/forms/characterCount/index.d.ts +2 -0
- package/dist/forms/characterCount/index.d.ts.map +1 -0
- package/dist/forms/checkboxField/CheckboxField.d.ts +16 -0
- package/dist/forms/checkboxField/CheckboxField.d.ts.map +1 -0
- package/dist/forms/checkboxField/index.d.ts +2 -0
- package/dist/forms/checkboxField/index.d.ts.map +1 -0
- package/dist/forms/checkboxGroup/CheckboxGroup.d.ts +24 -0
- package/dist/forms/checkboxGroup/CheckboxGroup.d.ts.map +1 -0
- package/dist/forms/checkboxGroup/index.d.ts +2 -0
- package/dist/forms/checkboxGroup/index.d.ts.map +1 -0
- package/dist/forms/choiceCard/ChoiceCard.d.ts +17 -0
- package/dist/forms/choiceCard/ChoiceCard.d.ts.map +1 -0
- package/dist/forms/choiceCard/index.d.ts +2 -0
- package/dist/forms/choiceCard/index.d.ts.map +1 -0
- package/dist/forms/currencyInput/CurrencyInput.d.ts +11 -0
- package/dist/forms/currencyInput/CurrencyInput.d.ts.map +1 -0
- package/dist/forms/currencyInput/index.d.ts +2 -0
- package/dist/forms/currencyInput/index.d.ts.map +1 -0
- package/dist/forms/filePicker/FilePicker.d.ts +18 -0
- package/dist/forms/filePicker/FilePicker.d.ts.map +1 -0
- package/dist/forms/filePicker/index.d.ts +2 -0
- package/dist/forms/filePicker/index.d.ts.map +1 -0
- package/dist/forms/formField/FormField.d.ts +24 -0
- package/dist/forms/formField/FormField.d.ts.map +1 -0
- package/dist/forms/formField/index.d.ts +2 -0
- package/dist/forms/formField/index.d.ts.map +1 -0
- package/dist/forms/index.d.ts +17 -0
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +5 -4
- package/dist/forms/inputAddon/InputAddon.d.ts +16 -0
- package/dist/forms/inputAddon/InputAddon.d.ts.map +1 -0
- package/dist/forms/inputAddon/index.d.ts +2 -0
- package/dist/forms/inputAddon/index.d.ts.map +1 -0
- package/dist/forms/inputGroup/InputGroup.d.ts +11 -0
- package/dist/forms/inputGroup/InputGroup.d.ts.map +1 -0
- package/dist/forms/inputGroup/index.d.ts +2 -0
- package/dist/forms/inputGroup/index.d.ts.map +1 -0
- package/dist/forms/labeledInput/LabeledInput.d.ts +17 -0
- package/dist/forms/labeledInput/LabeledInput.d.ts.map +1 -0
- package/dist/forms/labeledInput/index.d.ts +2 -0
- package/dist/forms/labeledInput/index.d.ts.map +1 -0
- package/dist/forms/maskedInput/MaskedInput.d.ts +17 -0
- package/dist/forms/maskedInput/MaskedInput.d.ts.map +1 -0
- package/dist/forms/maskedInput/index.d.ts +2 -0
- package/dist/forms/maskedInput/index.d.ts.map +1 -0
- package/dist/forms/passwordStrength/PasswordStrength.d.ts +15 -0
- package/dist/forms/passwordStrength/PasswordStrength.d.ts.map +1 -0
- package/dist/forms/passwordStrength/index.d.ts +2 -0
- package/dist/forms/passwordStrength/index.d.ts.map +1 -0
- package/dist/forms/percentInput/PercentInput.d.ts +8 -0
- package/dist/forms/percentInput/PercentInput.d.ts.map +1 -0
- package/dist/forms/percentInput/index.d.ts +2 -0
- package/dist/forms/percentInput/index.d.ts.map +1 -0
- package/dist/forms/pinInput/PinInput.d.ts +26 -0
- package/dist/forms/pinInput/PinInput.d.ts.map +1 -0
- package/dist/forms/pinInput/index.d.ts +2 -0
- package/dist/forms/pinInput/index.d.ts.map +1 -0
- package/dist/forms/radioField/RadioField.d.ts +12 -0
- package/dist/forms/radioField/RadioField.d.ts.map +1 -0
- package/dist/forms/radioField/index.d.ts +2 -0
- package/dist/forms/radioField/index.d.ts.map +1 -0
- package/dist/forms/radioGroup/RadioGroup.d.ts +19 -0
- package/dist/forms/radioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/forms/radioGroup/index.d.ts +2 -0
- package/dist/forms/radioGroup/index.d.ts.map +1 -0
- package/dist/forms/switchField/SwitchField.d.ts +15 -0
- package/dist/forms/switchField/SwitchField.d.ts.map +1 -0
- package/dist/forms/switchField/index.d.ts +2 -0
- package/dist/forms/switchField/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -3
- package/dist/hooks/useClipboard.d.ts +21 -0
- package/dist/hooks/useClipboard.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -11
- package/dist/layout/cluster/Cluster.d.ts +13 -0
- package/dist/layout/cluster/Cluster.d.ts.map +1 -0
- package/dist/layout/cluster/index.d.ts +2 -0
- package/dist/layout/cluster/index.d.ts.map +1 -0
- package/dist/layout/frame/Frame.d.ts +17 -0
- package/dist/layout/frame/Frame.d.ts.map +1 -0
- package/dist/layout/frame/index.d.ts +2 -0
- package/dist/layout/frame/index.d.ts.map +1 -0
- package/dist/layout/index.d.ts +4 -0
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +1 -1
- package/dist/layout/inline/Inline.d.ts +13 -0
- package/dist/layout/inline/Inline.d.ts.map +1 -0
- package/dist/layout/inline/index.d.ts +2 -0
- package/dist/layout/inline/index.d.ts.map +1 -0
- package/dist/layout/twoColumn/TwoColumn.d.ts +19 -0
- package/dist/layout/twoColumn/TwoColumn.d.ts.map +1 -0
- package/dist/layout/twoColumn/index.d.ts +2 -0
- package/dist/layout/twoColumn/index.d.ts.map +1 -0
- package/dist/nav/breadcrumb/Breadcrumb.d.ts +18 -0
- package/dist/nav/breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/nav/breadcrumb/index.d.ts +2 -0
- package/dist/nav/breadcrumb/index.d.ts.map +1 -0
- package/dist/nav/index.d.ts +4 -0
- package/dist/nav/index.d.ts.map +1 -0
- package/dist/nav/index.js +12 -0
- package/dist/nav/index.js.map +1 -0
- package/dist/nav/navItem/NavItem.d.ts +22 -0
- package/dist/nav/navItem/NavItem.d.ts.map +1 -0
- package/dist/nav/navItem/index.d.ts +2 -0
- package/dist/nav/navItem/index.d.ts.map +1 -0
- package/dist/nav/pagination/Pagination.d.ts +19 -0
- package/dist/nav/pagination/Pagination.d.ts.map +1 -0
- package/dist/nav/pagination/index.d.ts +2 -0
- package/dist/nav/pagination/index.d.ts.map +1 -0
- package/dist/primitives/index.js +3 -4
- package/package.json +5 -1
- package/dist/chunk-62NXDB5V.js +0 -275
- package/dist/chunk-62NXDB5V.js.map +0 -1
- package/dist/chunk-6NYTRHP7.js.map +0 -1
- package/dist/chunk-77WSI427.js.map +0 -1
- package/dist/chunk-DBQ4VF2J.js +0 -318
- package/dist/chunk-DBQ4VF2J.js.map +0 -1
- package/dist/chunk-HVJVLK6B.js +0 -120
- package/dist/chunk-HVJVLK6B.js.map +0 -1
- package/dist/chunk-JTJEI6MF.js +0 -11
- package/dist/chunk-JTJEI6MF.js.map +0 -1
- package/dist/chunk-SYG6ZE42.js.map +0 -1
- package/dist/chunk-TDEEVNSD.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/forms/label/Label.tsx","../src/forms/formHelperText/FormHelperText.tsx","../src/forms/formErrorMessage/FormErrorMessage.tsx","../src/forms/fieldset/Fieldset.tsx","../src/forms/legend/Legend.tsx","../src/forms/_styles.ts","../src/forms/textInput/TextInput.tsx","../src/forms/emailInput/EmailInput.tsx","../src/forms/telInput/TelInput.tsx","../src/forms/urlInput/UrlInput.tsx","../src/forms/numberInput/NumberInput.tsx","../src/forms/passwordInput/PasswordInput.tsx","../src/forms/searchInput/SearchInput.tsx","../src/forms/textarea/Textarea.tsx","../src/forms/checkbox/Checkbox.tsx","../src/forms/radio/Radio.tsx","../src/forms/switch/Switch.tsx","../src/forms/slider/Slider.tsx","../src/forms/formField/FormField.tsx","../src/forms/checkboxField/CheckboxField.tsx","../src/forms/radioField/RadioField.tsx","../src/forms/switchField/SwitchField.tsx","../src/forms/checkboxGroup/CheckboxGroup.tsx","../src/forms/radioGroup/RadioGroup.tsx","../src/forms/pinInput/PinInput.tsx","../src/forms/maskedInput/MaskedInput.tsx","../src/forms/currencyInput/CurrencyInput.tsx","../src/forms/percentInput/PercentInput.tsx","../src/forms/characterCount/CharacterCount.tsx","../src/forms/inputAddon/InputAddon.tsx","../src/forms/inputGroup/InputGroup.tsx","../src/forms/labeledInput/LabeledInput.tsx","../src/forms/choiceCard/ChoiceCard.tsx","../src/forms/passwordStrength/PasswordStrength.tsx","../src/forms/filePicker/FilePicker.tsx"],"names":["forwardRef","jsx","jsxs","useRef","useImperativeHandle","useState","Minus","SIZE_CLASS","TRACK_CLASS","useId","Children","isValidElement","cloneElement","SIZE"],"mappings":"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","file":"chunk-X2LTOZ7F.js","sourcesContent":["import { forwardRef, type LabelHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\n\nexport interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n /** Show a `*` indicator. Auto-derived from `FormControl.isRequired` when present. */\n required?: boolean;\n}\n\n/**\n * `<label>` wired to `FormControl` context — when wrapped in a `FormControl`\n * it auto-fills `htmlFor` and `id`. Standalone use: pass `htmlFor` directly.\n */\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, required, htmlFor, id, children, ...props }, ref) => {\n const ctx = useFormControl();\n const isRequired = required ?? ctx?.isRequired ?? false;\n return (\n <label\n ref={ref}\n htmlFor={htmlFor ?? ctx?.id}\n id={id ?? ctx?.labelId}\n className={cn(\n 'text-sm font-medium text-foreground',\n ctx?.isDisabled && 'opacity-60',\n className,\n )}\n {...props}\n >\n {children}\n {isRequired && <span className=\"ml-0.5 text-destructive\" aria-hidden=\"true\">*</span>}\n </label>\n );\n },\n);\nLabel.displayName = 'Label';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\n\nexport type FormHelperTextProps = ComponentPropsWithoutRef<'p'>;\n\n/**\n * Helper / hint text below a form control. Reads `helperId` from\n * `FormControl` so the input can reference it via `aria-describedby`.\n */\nexport const FormHelperText = forwardRef<HTMLParagraphElement, FormHelperTextProps>(\n ({ className, id, ...props }, ref) => {\n const ctx = useFormControl();\n return (\n <p\n ref={ref}\n id={id ?? ctx?.helperId}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n },\n);\nFormHelperText.displayName = 'FormHelperText';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\n\nexport type FormErrorMessageProps = ComponentPropsWithoutRef<'p'>;\n\n/**\n * Error copy under a form control. Renders only when the surrounding\n * `FormControl` is `isInvalid`. `id={errorId}` for `aria-describedby` wiring.\n */\nexport const FormErrorMessage = forwardRef<HTMLParagraphElement, FormErrorMessageProps>(\n ({ className, id, ...props }, ref) => {\n const ctx = useFormControl();\n if (ctx && !ctx.isInvalid) return null;\n return (\n <p\n ref={ref}\n id={id ?? ctx?.errorId}\n role=\"alert\"\n className={cn('text-sm text-destructive', className)}\n {...props}\n />\n );\n },\n);\nFormErrorMessage.displayName = 'FormErrorMessage';\n","import { forwardRef, type FieldsetHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\n\nexport type FieldsetProps = FieldsetHTMLAttributes<HTMLFieldSetElement>;\n\n/**\n * Semantic `<fieldset>` for grouping related controls. Pair with `Legend`\n * for the group label.\n */\nexport const Fieldset = forwardRef<HTMLFieldSetElement, FieldsetProps>(\n ({ className, ...props }, ref) => (\n <fieldset\n ref={ref}\n className={cn('m-0 min-w-0 border-0 p-0', className)}\n {...props}\n />\n ),\n);\nFieldset.displayName = 'Fieldset';\n","import { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils';\n\nexport type LegendProps = HTMLAttributes<HTMLLegendElement>;\n\n/**\n * `<legend>` styled to match `Label`. Pair with `Fieldset`.\n */\nexport const Legend = forwardRef<HTMLLegendElement, LegendProps>(\n ({ className, ...props }, ref) => (\n <legend\n ref={ref}\n className={cn('mb-2 text-sm font-medium text-foreground', className)}\n {...props}\n />\n ),\n);\nLegend.displayName = 'Legend';\n","// Shared visual primitives for form atoms. Co-located in `forms/` so imports\n// stay within-domain (ESLint boundaries allow same-domain imports).\n\nimport { tv, type VariantProps } from '../utils';\n\nexport const inputBaseVariants = tv({\n base: 'flex w-full rounded-md border bg-background text-foreground placeholder:text-subtle-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-60 read-only:bg-muted',\n variants: {\n size: {\n sm: 'h-8 px-2.5 text-sm',\n md: 'h-10 px-3 text-sm',\n lg: 'h-12 px-4 text-base',\n },\n state: {\n default: 'border-input hover:border-border-strong',\n invalid: 'border-destructive focus-visible:ring-destructive',\n },\n },\n defaultVariants: {\n size: 'md',\n state: 'default',\n },\n});\n\nexport type InputBaseVariants = VariantProps<typeof inputBaseVariants>;\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface TextInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n InputBaseVariants {}\n\n/**\n * Single-line text input. For email/tel/url/number/password/search variants\n * use the dedicated input component (each carries only the props/buttons it\n * actually needs).\n */\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n ({ className, size, state, id, disabled, required, readOnly, ...props }, ref) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n return (\n <input\n ref={ref}\n type=\"text\"\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(inputBaseVariants({ size, state: finalState }), className)}\n {...props}\n />\n );\n },\n);\nTextInput.displayName = 'TextInput';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface EmailInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n InputBaseVariants {}\n\n/** `<input type=\"email\">` with sensible defaults (autocomplete, inputmode). */\nexport const EmailInput = forwardRef<HTMLInputElement, EmailInputProps>(\n ({ className, size, state, id, disabled, required, readOnly, ...props }, ref) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n return (\n <input\n ref={ref}\n type=\"email\"\n autoComplete=\"email\"\n inputMode=\"email\"\n spellCheck={false}\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(inputBaseVariants({ size, state: finalState }), className)}\n {...props}\n />\n );\n },\n);\nEmailInput.displayName = 'EmailInput';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface TelInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n InputBaseVariants {}\n\n/** `<input type=\"tel\">` with `inputmode=\"tel\"` and `autocomplete=\"tel\"`. */\nexport const TelInput = forwardRef<HTMLInputElement, TelInputProps>(\n ({ className, size, state, id, disabled, required, readOnly, ...props }, ref) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n return (\n <input\n ref={ref}\n type=\"tel\"\n autoComplete=\"tel\"\n inputMode=\"tel\"\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(inputBaseVariants({ size, state: finalState }), className)}\n {...props}\n />\n );\n },\n);\nTelInput.displayName = 'TelInput';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface UrlInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n InputBaseVariants {}\n\n/** `<input type=\"url\">` with `inputmode=\"url\"` and `autocomplete=\"url\"`. */\nexport const UrlInput = forwardRef<HTMLInputElement, UrlInputProps>(\n ({ className, size, state, id, disabled, required, readOnly, ...props }, ref) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n return (\n <input\n ref={ref}\n type=\"url\"\n autoComplete=\"url\"\n inputMode=\"url\"\n spellCheck={false}\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(inputBaseVariants({ size, state: finalState }), className)}\n {...props}\n />\n );\n },\n);\nUrlInput.displayName = 'UrlInput';\n","import {\n forwardRef,\n useImperativeHandle,\n useRef,\n type InputHTMLAttributes,\n} from 'react';\nimport { Minus, Plus } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface NumberInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n InputBaseVariants {\n step?: number;\n}\n\n/**\n * Numeric input with stepper buttons. Steppers are raw `<button>` elements\n * (not `IconButton`) to keep the strict atom rule.\n */\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n (\n { className, size, state, id, disabled, required, readOnly, step = 1, ...props },\n forwardedRef,\n ) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n const inputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement);\n\n const adjust = (direction: 1 | -1) => {\n const el = inputRef.current;\n if (!el || typeof el.stepUp !== 'function') return;\n if (direction === 1) el.stepUp(step);\n else el.stepDown(step);\n el.dispatchEvent(new Event('input', { bubbles: true }));\n el.dispatchEvent(new Event('change', { bubbles: true }));\n };\n\n const isDisabled = disabled ?? ctx?.isDisabled ?? false;\n\n return (\n <div className={cn('relative', className)}>\n <input\n ref={inputRef}\n type=\"number\"\n inputMode=\"decimal\"\n step={step}\n id={id ?? ctx?.id}\n disabled={isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(inputBaseVariants({ size, state: finalState }), 'pr-12 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none')}\n {...props}\n />\n <div className=\"absolute right-1 top-1/2 flex -translate-y-1/2 items-center\">\n <button\n type=\"button\"\n disabled={isDisabled}\n onClick={() => adjust(-1)}\n aria-label=\"Decrement\"\n className=\"grid h-7 w-6 place-items-center rounded text-muted-foreground hover:bg-muted disabled:opacity-50\"\n >\n <Icon icon={Minus} size={14} />\n </button>\n <button\n type=\"button\"\n disabled={isDisabled}\n onClick={() => adjust(1)}\n aria-label=\"Increment\"\n className=\"grid h-7 w-6 place-items-center rounded text-muted-foreground hover:bg-muted disabled:opacity-50\"\n >\n <Icon icon={Plus} size={14} />\n </button>\n </div>\n </div>\n );\n },\n);\nNumberInput.displayName = 'NumberInput';\n","import { forwardRef, useState, type InputHTMLAttributes } from 'react';\nimport { Eye, EyeOff } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface PasswordInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n InputBaseVariants {\n /** Whether to render the visibility-toggle button. Default true. */\n toggleable?: boolean;\n}\n\n/**\n * Password input with optional visibility toggle. Toggle is a raw `<button>`\n * to keep the strict atom rule.\n */\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n className,\n size,\n state,\n id,\n disabled,\n required,\n readOnly,\n toggleable = true,\n autoComplete = 'current-password',\n ...props\n },\n ref,\n ) => {\n const [visible, setVisible] = useState(false);\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n const isDisabled = disabled ?? ctx?.isDisabled ?? false;\n\n return (\n <div className={cn('relative', className)}>\n <input\n ref={ref}\n type={visible ? 'text' : 'password'}\n autoComplete={autoComplete}\n spellCheck={false}\n id={id ?? ctx?.id}\n disabled={isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(inputBaseVariants({ size, state: finalState }), toggleable && 'pr-10')}\n {...props}\n />\n {toggleable && (\n <button\n type=\"button\"\n disabled={isDisabled}\n onClick={() => setVisible((v) => !v)}\n aria-label={visible ? 'Hide password' : 'Show password'}\n aria-pressed={visible}\n className=\"absolute right-1 top-1/2 grid h-8 w-8 -translate-y-1/2 place-items-center rounded text-muted-foreground hover:bg-muted disabled:opacity-50\"\n >\n <Icon icon={visible ? EyeOff : Eye} size={16} />\n </button>\n )}\n </div>\n );\n },\n);\nPasswordInput.displayName = 'PasswordInput';\n","import {\n forwardRef,\n useImperativeHandle,\n useRef,\n useState,\n type InputHTMLAttributes,\n} from 'react';\nimport { Search, X } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface SearchInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n InputBaseVariants {\n /** Show a clear (×) button when the input has a value. Default true. */\n clearable?: boolean;\n onClear?: () => void;\n}\n\n/**\n * Search input with leading search icon and optional clear button.\n * Buttons are raw `<button>` elements to keep the strict atom rule.\n */\nexport const SearchInput = forwardRef<HTMLInputElement, SearchInputProps>(\n (\n {\n className,\n size,\n state,\n id,\n disabled,\n required,\n readOnly,\n clearable = true,\n onClear,\n onChange,\n defaultValue,\n value,\n ...props\n },\n forwardedRef,\n ) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n const isDisabled = disabled ?? ctx?.isDisabled ?? false;\n const inputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement);\n const isControlled = value !== undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultValue ?? '');\n const currentValue = isControlled ? value : uncontrolled;\n const showClear = clearable && String(currentValue ?? '').length > 0;\n\n const handleClear = () => {\n const el = inputRef.current;\n if (el) {\n const setter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')\n ?.set;\n setter?.call(el, '');\n el.dispatchEvent(new Event('input', { bubbles: true }));\n el.focus();\n }\n if (!isControlled) setUncontrolled('');\n onClear?.();\n };\n\n return (\n <div className={cn('relative', className)}>\n <Icon\n icon={Search}\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-subtle-foreground\"\n />\n <input\n ref={inputRef}\n type=\"search\"\n id={id ?? ctx?.id}\n value={isControlled ? value : undefined}\n defaultValue={!isControlled ? (defaultValue as string | number | undefined) : undefined}\n onChange={(e) => {\n if (!isControlled) setUncontrolled(e.target.value);\n onChange?.(e);\n }}\n disabled={isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(\n inputBaseVariants({ size, state: finalState }),\n 'pl-9',\n showClear && 'pr-9',\n '[&::-webkit-search-cancel-button]:appearance-none',\n )}\n {...props}\n />\n {showClear && (\n <button\n type=\"button\"\n disabled={isDisabled}\n onClick={handleClear}\n aria-label=\"Clear search\"\n className=\"absolute right-1 top-1/2 grid h-8 w-8 -translate-y-1/2 place-items-center rounded text-subtle-foreground hover:bg-muted hover:text-muted-foreground\"\n >\n <Icon icon={X} size={14} />\n </button>\n )}\n </div>\n );\n },\n);\nSearchInput.displayName = 'SearchInput';\n","import { forwardRef, type TextareaHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface TextareaProps\n extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'>,\n InputBaseVariants {}\n\n/**\n * Multi-line text input. Inherits the input visual base. For autosize, pair\n * with a sibling-domain hook in v1 — kept simple at L3.\n */\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n { className, size, state, id, disabled, required, readOnly, rows = 3, ...props },\n ref,\n ) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n return (\n <textarea\n ref={ref}\n rows={rows}\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(\n inputBaseVariants({ size, state: finalState }),\n 'h-auto resize-y py-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = 'Textarea';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { Check, Minus } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\n\nexport interface CheckboxProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n size?: 'sm' | 'md' | 'lg';\n /** Tristate visual — input is `checked={false}` but rendered as a dash. */\n indeterminate?: boolean;\n}\n\nconst SIZE_CLASS: Record<NonNullable<CheckboxProps['size']>, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n};\n\n/**\n * Native checkbox with custom visual. Renders the input visually hidden but\n * accessible — wrap in a `<label>` (or pair with `Label` via `FormControl`).\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n { className, size = 'md', indeterminate, id, disabled, required, checked, ...props },\n ref,\n ) => {\n const ctx = useFormControl();\n const isDisabled = disabled ?? ctx?.isDisabled;\n return (\n <span className={cn('relative inline-flex shrink-0', SIZE_CLASS[size], className)}>\n <input\n ref={ref}\n type=\"checkbox\"\n id={id ?? ctx?.id}\n disabled={isDisabled}\n required={required ?? ctx?.isRequired}\n checked={checked}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className=\"peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n {...props}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none grid h-full w-full place-items-center rounded-sm border border-input bg-background text-primary-foreground transition-colors',\n 'peer-checked:border-primary peer-checked:bg-primary',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-1',\n 'peer-disabled:opacity-50',\n indeterminate && 'border-primary bg-primary',\n )}\n >\n {indeterminate ? (\n <Minus size={Math.round(SIZE_CLASS[size].length * 1.4)} className=\"h-3 w-3\" />\n ) : (\n <Check className=\"h-3 w-3 opacity-0 peer-checked:opacity-100\" />\n )}\n </span>\n </span>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\n\nexport interface RadioProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst SIZE_CLASS: Record<NonNullable<RadioProps['size']>, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n};\n\n/**\n * Native radio button with custom visual. Use multiple with the same `name`\n * to form a mutually exclusive group; for arrow-key nav, wrap in\n * `RadioGroup` (L4).\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ className, size = 'md', id, disabled, required, ...props }, ref) => {\n const ctx = useFormControl();\n return (\n <span className={cn('relative inline-flex shrink-0', SIZE_CLASS[size], className)}>\n <input\n ref={ref}\n type=\"radio\"\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n aria-invalid={ctx?.isInvalid || undefined}\n className=\"peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n {...props}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none grid h-full w-full place-items-center rounded-full border border-input bg-background transition-colors',\n 'peer-checked:border-primary',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-1',\n 'peer-disabled:opacity-50',\n )}\n >\n <span className=\"h-2 w-2 rounded-full bg-primary opacity-0 peer-checked:opacity-100\" />\n </span>\n </span>\n );\n },\n);\nRadio.displayName = 'Radio';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\n\nexport interface SwitchProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst TRACK_CLASS: Record<NonNullable<SwitchProps['size']>, string> = {\n sm: 'h-4 w-7',\n md: 'h-5 w-9',\n lg: 'h-6 w-11',\n};\nconst THUMB_CLASS: Record<NonNullable<SwitchProps['size']>, string> = {\n sm: 'h-3 w-3 peer-checked:translate-x-3',\n md: 'h-4 w-4 peer-checked:translate-x-4',\n lg: 'h-5 w-5 peer-checked:translate-x-5',\n};\n\n/**\n * Toggle switch — native checkbox styled as an iOS-style track + thumb.\n * Strict atom: no built-in label; pair via `FormControl` or wrap manually.\n */\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n ({ className, size = 'md', id, disabled, required, ...props }, ref) => {\n const ctx = useFormControl();\n return (\n <span className={cn('relative inline-flex shrink-0', TRACK_CLASS[size], className)}>\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n aria-invalid={ctx?.isInvalid || undefined}\n className=\"peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n {...props}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none flex h-full w-full items-center rounded-full bg-input px-0.5 transition-colors',\n 'peer-checked:bg-primary',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-1',\n 'peer-disabled:opacity-50',\n )}\n >\n <span\n className={cn(\n 'rounded-full bg-background shadow-sm transition-transform duration-150',\n THUMB_CLASS[size],\n )}\n />\n </span>\n </span>\n );\n },\n);\nSwitch.displayName = 'Switch';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\n\nexport interface SliderProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst TRACK_CLASS: Record<NonNullable<SliderProps['size']>, string> = {\n sm: 'h-1',\n md: 'h-1.5',\n lg: 'h-2',\n};\n\n/**\n * Single-value range slider — native `<input type=\"range\">` styled across\n * browsers. Multi-thumb / range slider lives at L5.\n */\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(\n (\n { className, size = 'md', id, disabled, required, min = 0, max = 100, ...props },\n ref,\n ) => {\n const ctx = useFormControl();\n return (\n <input\n ref={ref}\n type=\"range\"\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n min={min}\n max={max}\n aria-invalid={ctx?.isInvalid || undefined}\n className={cn(\n 'w-full appearance-none bg-transparent disabled:cursor-not-allowed disabled:opacity-50',\n // WebKit\n '[&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-muted',\n `[&::-webkit-slider-runnable-track]:${TRACK_CLASS[size]}`,\n '[&::-webkit-slider-thumb]:mt-[-6px] [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-primary [&::-webkit-slider-thumb]:bg-background',\n // Firefox\n `[&::-moz-range-track]:${TRACK_CLASS[size]}`,\n '[&::-moz-range-track]:rounded-full [&::-moz-range-track]:bg-muted',\n '[&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-primary [&::-moz-range-thumb]:bg-background',\n 'focus-visible:outline-none focus-visible:[&::-webkit-slider-thumb]:ring-2 focus-visible:[&::-webkit-slider-thumb]:ring-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSlider.displayName = 'Slider';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { FormControlProvider } from '../../primitives/formControlContext/FormControlContext';\nimport { Label } from '../label/Label';\nimport { FormHelperText } from '../formHelperText/FormHelperText';\nimport { FormErrorMessage } from '../formErrorMessage/FormErrorMessage';\n\nexport interface FormFieldProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n /** Label text. Pass a node for richer content (e.g. label + tooltip). */\n label?: ReactNode;\n /** Helper / hint shown beneath the control. Hidden when `error` is set. */\n helper?: ReactNode;\n /** Error text — renders only when truthy. Sets `isInvalid` on the form context. */\n error?: ReactNode;\n /** Mark required (also exposes `isRequired` to the control via context). */\n isRequired?: boolean;\n /** Mark disabled (also exposes `isDisabled` to the control). */\n isDisabled?: boolean;\n /** Mark read-only (also exposes `isReadOnly` to the control). */\n isReadOnly?: boolean;\n /** The single form control (Input, Select, etc.) — receives wired id/aria via context. */\n children: ReactNode;\n}\n\n/**\n * One-stop label + control + helper + error wrapper. Wraps children in a\n * `FormControlProvider` so the inner control auto-wires `id`, `aria-describedby`,\n * `aria-invalid`, `disabled`, `required`, `readOnly`.\n */\nexport const FormField = forwardRef<HTMLDivElement, FormFieldProps>(\n (\n { label, helper, error, isRequired, isDisabled, isReadOnly, children, className, ...props },\n ref,\n ) => (\n <FormControlProvider\n isInvalid={Boolean(error)}\n isRequired={isRequired}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n >\n <div\n ref={ref}\n className={cn('flex flex-col gap-1.5', className)}\n {...props}\n >\n {label && <Label>{label}</Label>}\n {children}\n {error ? <FormErrorMessage>{error}</FormErrorMessage> : helper && <FormHelperText>{helper}</FormHelperText>}\n </div>\n </FormControlProvider>\n ),\n);\nFormField.displayName = 'FormField';\n","import { forwardRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { useId } from '../../hooks';\nimport { Checkbox, type CheckboxProps } from '../checkbox/Checkbox';\n\nexport interface CheckboxFieldProps extends Omit<CheckboxProps, 'children'> {\n /** Right-side label. */\n label: ReactNode;\n /** Smaller helper / description below. */\n description?: ReactNode;\n /** Wrap-element className (the `<label>`). */\n wrapperClassName?: string;\n}\n\n/**\n * Checkbox + right-side label + optional description, wrapped in a single\n * `<label>` so clicking text toggles the box.\n */\nexport const CheckboxField = forwardRef<HTMLInputElement, CheckboxFieldProps>(\n ({ label, description, id, wrapperClassName, className, ...props }, ref) => {\n const generated = useId();\n const inputId = id ?? generated;\n return (\n <label\n htmlFor={inputId}\n className={cn('flex items-start gap-2.5 cursor-pointer', wrapperClassName)}\n >\n <Checkbox ref={ref} id={inputId} className={className} {...props} />\n <span className=\"flex flex-col gap-0.5 text-sm\">\n <span className=\"font-medium text-foreground\">{label}</span>\n {description && <span className=\"text-muted-foreground\">{description}</span>}\n </span>\n </label>\n );\n },\n);\nCheckboxField.displayName = 'CheckboxField';\n","import { forwardRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { useId } from '../../hooks';\nimport { Radio, type RadioProps } from '../radio/Radio';\n\nexport interface RadioFieldProps extends Omit<RadioProps, 'children'> {\n label: ReactNode;\n description?: ReactNode;\n wrapperClassName?: string;\n}\n\n/**\n * Radio + right-side label + optional description, wrapped in a `<label>`.\n */\nexport const RadioField = forwardRef<HTMLInputElement, RadioFieldProps>(\n ({ label, description, id, wrapperClassName, className, ...props }, ref) => {\n const generated = useId();\n const inputId = id ?? generated;\n return (\n <label htmlFor={inputId} className={cn('flex items-start gap-2.5 cursor-pointer', wrapperClassName)}>\n <Radio ref={ref} id={inputId} className={className} {...props} />\n <span className=\"flex flex-col gap-0.5 text-sm\">\n <span className=\"font-medium text-foreground\">{label}</span>\n {description && <span className=\"text-muted-foreground\">{description}</span>}\n </span>\n </label>\n );\n },\n);\nRadioField.displayName = 'RadioField';\n","import { forwardRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { useId } from '../../hooks';\nimport { Switch, type SwitchProps } from '../switch/Switch';\n\nexport interface SwitchFieldProps extends Omit<SwitchProps, 'children'> {\n label: ReactNode;\n description?: ReactNode;\n /** Place the switch on the left (default) or right of the label. */\n side?: 'left' | 'right';\n wrapperClassName?: string;\n}\n\n/**\n * Switch + label + optional description in a single clickable `<label>`.\n * `side=\"right\"` is the common settings-row pattern (label left, switch right).\n */\nexport const SwitchField = forwardRef<HTMLInputElement, SwitchFieldProps>(\n ({ label, description, side = 'left', id, wrapperClassName, className, ...props }, ref) => {\n const generated = useId();\n const inputId = id ?? generated;\n const text = (\n <span className=\"flex flex-col gap-0.5 text-sm\">\n <span className=\"font-medium text-foreground\">{label}</span>\n {description && <span className=\"text-muted-foreground\">{description}</span>}\n </span>\n );\n return (\n <label\n htmlFor={inputId}\n className={cn(\n 'flex cursor-pointer items-start gap-3',\n side === 'right' && 'flex-row-reverse justify-between',\n wrapperClassName,\n )}\n >\n <Switch ref={ref} id={inputId} className={className} {...props} />\n {text}\n </label>\n );\n },\n);\nSwitchField.displayName = 'SwitchField';\n","import { Children, cloneElement, forwardRef, isValidElement, type HTMLAttributes, type ReactElement, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { Fieldset } from '../fieldset/Fieldset';\nimport { Legend } from '../legend/Legend';\nimport type { CheckboxFieldProps } from '../checkboxField/CheckboxField';\n\ninterface CheckboxGroupProps extends Omit<HTMLAttributes<HTMLFieldSetElement>, 'onChange'> {\n /** Group legend (label-equivalent for fieldset). */\n legend?: ReactNode;\n /** Selected values (controlled). */\n value?: string[];\n /** Initial values (uncontrolled). */\n defaultValue?: string[];\n /** Fires whenever selection changes. */\n onValueChange?: (next: string[]) => void;\n /** Disable the whole group. */\n isDisabled?: boolean;\n /** Layout direction. Default `vertical`. */\n orientation?: 'horizontal' | 'vertical';\n /** `<CheckboxField>` children with `value=\"…\"` attached. */\n children: ReactNode;\n}\n\ninterface ChildLike extends CheckboxFieldProps {\n value?: string;\n}\n\n/**\n * Multi-select group of `CheckboxField` children. Each child must declare a\n * `value` prop the group uses to track selection.\n */\nexport const CheckboxGroup = forwardRef<HTMLFieldSetElement, CheckboxGroupProps>(\n (\n {\n legend,\n value,\n defaultValue,\n onValueChange,\n isDisabled,\n orientation = 'vertical',\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [selected, setSelected] = useControlled<string[]>({\n controlled: value,\n default: defaultValue ?? [],\n onChange: onValueChange,\n });\n\n const toggle = (v: string | undefined) => {\n if (v === undefined) return;\n setSelected(selected.includes(v) ? selected.filter((x) => x !== v) : [...selected, v]);\n };\n\n return (\n <Fieldset ref={ref} disabled={isDisabled} className={cn(className)} {...props}>\n {legend && <Legend>{legend}</Legend>}\n <div className={cn('flex gap-3', orientation === 'vertical' ? 'flex-col' : 'flex-row flex-wrap')}>\n {Children.map(children, (child) => {\n if (!isValidElement(child)) return child;\n const c = child as ReactElement<ChildLike>;\n const v = c.props.value;\n return cloneElement(c, {\n checked: v !== undefined && selected.includes(v),\n onChange: () => toggle(v),\n } as Partial<ChildLike>);\n })}\n </div>\n </Fieldset>\n );\n },\n);\nCheckboxGroup.displayName = 'CheckboxGroup';\n\nexport type { CheckboxGroupProps };\n","import { Children, cloneElement, forwardRef, isValidElement, useId, type HTMLAttributes, type ReactElement, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { Fieldset } from '../fieldset/Fieldset';\nimport { Legend } from '../legend/Legend';\nimport type { RadioFieldProps } from '../radioField/RadioField';\n\ninterface RadioGroupProps extends Omit<HTMLAttributes<HTMLFieldSetElement>, 'onChange' | 'defaultValue'> {\n legend?: ReactNode;\n /** Shared `name` (required for native radio behavior). Auto-generated if omitted. */\n name?: string;\n value?: string | null;\n defaultValue?: string | null;\n onValueChange?: (next: string | null) => void;\n isDisabled?: boolean;\n orientation?: 'horizontal' | 'vertical';\n children: ReactNode;\n}\n\ninterface ChildLike extends RadioFieldProps {\n value?: string;\n}\n\n/**\n * Mutex group of `RadioField` children. Single-value selection; auto-generates\n * a shared `name` if not provided.\n */\nexport const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(\n (\n {\n legend,\n name,\n value,\n defaultValue,\n onValueChange,\n isDisabled,\n orientation = 'vertical',\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const generatedName = useId();\n const groupName = name ?? generatedName;\n const [selected, setSelected] = useControlled<string | null>({\n controlled: value,\n default: defaultValue ?? null,\n onChange: onValueChange,\n });\n\n return (\n <Fieldset ref={ref} disabled={isDisabled} className={cn(className)} {...props}>\n {legend && <Legend>{legend}</Legend>}\n <div className={cn('flex gap-3', orientation === 'vertical' ? 'flex-col' : 'flex-row flex-wrap')}>\n {Children.map(children, (child) => {\n if (!isValidElement(child)) return child;\n const c = child as ReactElement<ChildLike>;\n const v = c.props.value;\n return cloneElement(c, {\n name: groupName,\n checked: v !== undefined && selected === v,\n onChange: () => setSelected(v ?? null),\n } as Partial<ChildLike>);\n })}\n </div>\n </Fieldset>\n );\n },\n);\nRadioGroup.displayName = 'RadioGroup';\n\nexport type { RadioGroupProps };\n","import {\n forwardRef,\n useImperativeHandle,\n useRef,\n type ComponentPropsWithoutRef,\n} from 'react';\nimport { cn } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { inputBaseVariants } from '../_styles';\n\nexport interface PinInputProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'onChange'> {\n /** Number of digit cells. Default 6. */\n length?: number;\n /** Controlled value (full string). */\n value?: string;\n /** Uncontrolled initial value. */\n defaultValue?: string;\n /** Fires whenever the value changes. */\n onValueChange?: (value: string) => void;\n /** Fires when the user fills the final cell. */\n onComplete?: (value: string) => void;\n /** Restrict to digits (`numeric`) or any single char (`alphanumeric`). Default `numeric`. */\n type?: 'numeric' | 'alphanumeric';\n /** Cell visual size. Default `md`. */\n size?: 'sm' | 'md' | 'lg';\n /** Render each cell as `*` (good for verification codes). */\n mask?: boolean;\n isDisabled?: boolean;\n}\n\nconst SIZE: Record<NonNullable<PinInputProps['size']>, string> = {\n sm: 'h-9 w-9 text-base',\n md: 'h-11 w-11 text-lg',\n lg: 'h-14 w-14 text-xl',\n};\n\n/**\n * One-time-code / PIN input — N single-character cells with auto-advance,\n * paste-spread, and backspace-to-previous behavior.\n */\nexport const PinInput = forwardRef<HTMLDivElement, PinInputProps>(\n (\n {\n length = 6,\n value,\n defaultValue,\n onValueChange,\n onComplete,\n type = 'numeric',\n size = 'md',\n mask,\n isDisabled,\n className,\n ...props\n },\n ref,\n ) => {\n const [val, setVal] = useControlled({\n controlled: value,\n default: defaultValue ?? '',\n onChange: onValueChange,\n });\n const cells = Array.from({ length }, (_, i) => val[i] ?? '');\n const inputs = useRef<(HTMLInputElement | null)[]>([]);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n useImperativeHandle(ref, () => wrapperRef.current as HTMLDivElement);\n\n const isAllowed = (ch: string) =>\n type === 'numeric' ? /^[0-9]$/.test(ch) : /^[A-Za-z0-9]$/.test(ch);\n\n const update = (next: string) => {\n const trimmed = next.slice(0, length);\n setVal(trimmed);\n if (trimmed.length === length) onComplete?.(trimmed);\n };\n\n const handleChange = (i: number, raw: string) => {\n const ch = raw.slice(-1);\n if (ch && !isAllowed(ch)) return;\n const arr = cells.slice();\n arr[i] = ch;\n const next = arr.join('').slice(0, length);\n update(next);\n if (ch && i < length - 1) inputs.current[i + 1]?.focus();\n };\n\n const handleKeyDown = (i: number, e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Backspace' && !cells[i] && i > 0) {\n inputs.current[i - 1]?.focus();\n } else if (e.key === 'ArrowLeft' && i > 0) {\n e.preventDefault();\n inputs.current[i - 1]?.focus();\n } else if (e.key === 'ArrowRight' && i < length - 1) {\n e.preventDefault();\n inputs.current[i + 1]?.focus();\n }\n };\n\n const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n const pasted = e.clipboardData.getData('text').replace(/\\s+/g, '');\n const filtered = pasted.split('').filter(isAllowed).join('');\n if (filtered) {\n e.preventDefault();\n update(filtered);\n const focusIdx = Math.min(filtered.length, length - 1);\n inputs.current[focusIdx]?.focus();\n }\n };\n\n return (\n <div ref={wrapperRef} className={cn('inline-flex gap-2', className)} {...props}>\n {cells.map((ch, i) => (\n <input\n key={i}\n ref={(el) => {\n inputs.current[i] = el;\n }}\n type={mask ? 'password' : 'text'}\n inputMode={type === 'numeric' ? 'numeric' : 'text'}\n autoComplete=\"one-time-code\"\n maxLength={1}\n disabled={isDisabled}\n value={ch}\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n className={cn(\n inputBaseVariants({ state: 'default' }),\n 'text-center font-medium',\n SIZE[size],\n )}\n />\n ))}\n </div>\n );\n },\n);\nPinInput.displayName = 'PinInput';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { inputBaseVariants, type InputBaseVariants } from '../_styles';\n\nexport interface MaskedInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'defaultValue' | 'onChange'>,\n InputBaseVariants {\n /** Mask pattern. `#` = digit, `A` = alpha, `*` = alphanumeric, anything else = literal. */\n mask: string;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nfunction applyMask(raw: string, mask: string): string {\n let out = '';\n let r = 0;\n for (let m = 0; m < mask.length && r < raw.length; m++) {\n const tok = mask[m];\n const ch = raw[r];\n if (!tok || !ch) break;\n if (tok === '#') {\n if (/[0-9]/.test(ch)) {\n out += ch;\n r++;\n } else {\n r++;\n m--;\n }\n } else if (tok === 'A') {\n if (/[A-Za-z]/.test(ch)) {\n out += ch;\n r++;\n } else {\n r++;\n m--;\n }\n } else if (tok === '*') {\n if (/[A-Za-z0-9]/.test(ch)) {\n out += ch;\n r++;\n } else {\n r++;\n m--;\n }\n } else {\n // literal\n out += tok;\n if (ch === tok) r++;\n }\n }\n return out;\n}\n\n/**\n * Text input with a simple character-class mask. Tokens: `#` digit, `A`\n * letter, `*` alphanumeric. Anything else is a literal that's auto-inserted.\n *\n * Examples: `\"###-###-####\"` (US phone), `\"##/##/####\"` (date), `\"AAA-####\"`.\n */\nexport const MaskedInput = forwardRef<HTMLInputElement, MaskedInputProps>(\n (\n { className, size, state, mask, value, defaultValue, onValueChange, id, disabled, required, readOnly, ...props },\n ref,\n ) => {\n const ctx = useFormControl();\n const finalState = state ?? (ctx?.isInvalid ? 'invalid' : 'default');\n const [val, setVal] = useControlled({\n controlled: value,\n default: defaultValue ?? '',\n onChange: onValueChange,\n });\n return (\n <input\n ref={ref}\n type=\"text\"\n value={val}\n onChange={(e) => setVal(applyMask(e.target.value, mask))}\n id={id ?? ctx?.id}\n disabled={disabled ?? ctx?.isDisabled}\n required={required ?? ctx?.isRequired}\n readOnly={readOnly ?? ctx?.isReadOnly}\n aria-invalid={ctx?.isInvalid || undefined}\n aria-describedby={ctx ? `${ctx.helperId} ${ctx.errorId}` : undefined}\n className={cn(inputBaseVariants({ size, state: finalState }), className)}\n {...props}\n />\n );\n },\n);\nMaskedInput.displayName = 'MaskedInput';\n","import { forwardRef } from 'react';\nimport { cn } from '../../utils';\nimport { NumberInput, type NumberInputProps } from '../numberInput/NumberInput';\n\nexport interface CurrencyInputProps extends Omit<NumberInputProps, 'children'> {\n /** Currency symbol or 3-letter code displayed as a prefix. Default `\"$\"`. */\n symbol?: string;\n}\n\n/**\n * `NumberInput` with a leading currency symbol. Symbol shown as a non-input\n * decoration (input value is the bare number).\n */\nexport const CurrencyInput = forwardRef<HTMLInputElement, CurrencyInputProps>(\n ({ symbol = '$', className, ...props }, ref) => (\n <div className={cn('relative', className)}>\n <span className=\"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-sm text-muted-foreground\">\n {symbol}\n </span>\n <NumberInput ref={ref} {...props} className=\"pl-7\" />\n </div>\n ),\n);\nCurrencyInput.displayName = 'CurrencyInput';\n","import { forwardRef } from 'react';\nimport { cn } from '../../utils';\nimport { NumberInput, type NumberInputProps } from '../numberInput/NumberInput';\n\nexport type PercentInputProps = Omit<NumberInputProps, 'children'>;\n\n/**\n * `NumberInput` with a trailing `%` decoration. Input value remains the\n * bare number (interpret as 0–100 in your form).\n */\nexport const PercentInput = forwardRef<HTMLInputElement, PercentInputProps>(\n ({ className, ...props }, ref) => (\n <div className={cn('relative', className)}>\n <NumberInput ref={ref} {...props} className=\"pr-16\" />\n <span className=\"pointer-events-none absolute right-12 top-1/2 -translate-y-1/2 text-sm text-muted-foreground\">\n %\n </span>\n </div>\n ),\n);\nPercentInput.displayName = 'PercentInput';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface CharacterCountProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n /** Current length. */\n value: number;\n /** Maximum allowed length (also flips text to destructive when exceeded). */\n max: number;\n /** Show as `current / max` (default) or just `current`. */\n showMax?: boolean;\n}\n\n/**\n * Counter for character-limited fields. Drop in below a Textarea / Input.\n * Goes destructive once `value > max`.\n */\nexport const CharacterCount = forwardRef<HTMLDivElement, CharacterCountProps>(\n ({ value, max, showMax = true, className, ...props }, ref) => {\n const over = value > max;\n return (\n <div\n ref={ref}\n aria-live=\"polite\"\n className={cn(\n 'text-right text-xs',\n over ? 'text-destructive' : 'text-muted-foreground',\n className,\n )}\n {...props}\n >\n {value}{showMax && ` / ${max}`}\n </div>\n );\n },\n);\nCharacterCount.displayName = 'CharacterCount';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\n\nexport interface InputAddonProps extends ComponentPropsWithoutRef<'div'> {\n /** Element rendered to the left of the input (e.g. \"https://\"). */\n leading?: ReactNode;\n /** Element rendered to the right of the input (e.g. \".com\"). */\n trailing?: ReactNode;\n /** The input element (TextInput, EmailInput, etc.). */\n children: ReactNode;\n}\n\n/**\n * Wrap any input with leading and/or trailing addon slots — visually\n * connected to the input border. Common for protocol prefixes, units,\n * suffixes (\"https://\", \".com\", \"kg\").\n */\nexport const InputAddon = forwardRef<HTMLDivElement, InputAddonProps>(\n ({ leading, trailing, children, className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'inline-flex w-full items-stretch [&>*]:rounded-none',\n '[&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md',\n '[&>*:not(:first-child)]:-ml-px',\n className,\n )}\n {...props}\n >\n {leading && (\n <span className=\"inline-flex shrink-0 items-center border border-input bg-muted px-3 text-sm text-muted-foreground\">\n {leading}\n </span>\n )}\n {children}\n {trailing && (\n <span className=\"inline-flex shrink-0 items-center border border-input bg-muted px-3 text-sm text-muted-foreground\">\n {trailing}\n </span>\n )}\n </div>\n ),\n);\nInputAddon.displayName = 'InputAddon';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface InputGroupProps extends ComponentPropsWithoutRef<'div'> {\n orientation?: 'horizontal' | 'vertical';\n}\n\n/**\n * Visually joins a row/column of inputs (TextInput, NumberInput, etc.)\n * — collapses inner radii so they read as one connected control. Mirror\n * of `actions/ButtonGroup`.\n */\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(\n ({ orientation = 'horizontal', className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'inline-flex w-full',\n orientation === 'horizontal' ? 'flex-row' : 'flex-col',\n orientation === 'horizontal'\n ? '[&>*]:rounded-none [&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md [&>*:not(:first-child)]:-ml-px'\n : '[&>*]:rounded-none [&>*:first-child]:rounded-t-md [&>*:last-child]:rounded-b-md [&>*:not(:first-child)]:-mt-px',\n className,\n )}\n {...props}\n />\n ),\n);\nInputGroup.displayName = 'InputGroup';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { useId } from '../../hooks';\nimport { Label } from '../label/Label';\n\nexport interface LabeledInputProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n label: ReactNode;\n /** The input element. Receives a generated `id` linked to the label. */\n children: React.ReactElement<{ id?: string }>;\n /** Optional inline-end label (e.g. \"Optional\"). */\n trailing?: ReactNode;\n}\n\n/**\n * Lighter alternative to `FormField` — just `Label` + control, no helper /\n * error / context wiring. Good for compact inline forms.\n */\nexport const LabeledInput = forwardRef<HTMLDivElement, LabeledInputProps>(\n ({ label, children, trailing, className, ...props }, ref) => {\n const generated = useId();\n const id = children.props.id ?? generated;\n return (\n <div ref={ref} className={cn('flex flex-col gap-1.5', className)} {...props}>\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={id}>{label}</Label>\n {trailing && <span className=\"text-xs text-muted-foreground\">{trailing}</span>}\n </div>\n {React.cloneElement(children, { id })}\n </div>\n );\n },\n);\nLabeledInput.displayName = 'LabeledInput';\n\nimport * as React from 'react';\n","import { forwardRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { useId } from '../../hooks';\nimport { Radio, type RadioProps } from '../radio/Radio';\n\nexport interface ChoiceCardProps extends Omit<RadioProps, 'children' | 'size'> {\n label: ReactNode;\n description?: ReactNode;\n /** Optional icon rendered above the label. */\n icon?: ReactNode;\n /** Card size. Default `md`. */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst SIZE: Record<NonNullable<ChoiceCardProps['size']>, string> = {\n sm: 'p-3 text-xs',\n md: 'p-4 text-sm',\n lg: 'p-5 text-base',\n};\n\n/**\n * Radio styled as a clickable card with title + description + optional\n * icon. Common for plan/option pickers. Compose inside `RadioGroup` for\n * mutex selection.\n */\nexport const ChoiceCard = forwardRef<HTMLInputElement, ChoiceCardProps>(\n ({ label, description, icon, size = 'md', id, className, ...props }, ref) => {\n const generated = useId();\n const inputId = id ?? generated;\n return (\n <label\n htmlFor={inputId}\n className={cn(\n 'group relative block cursor-pointer rounded-lg border border-input bg-card text-card-foreground transition-colors',\n 'hover:border-border-strong has-[:checked]:border-primary has-[:checked]:bg-primary-soft/30',\n 'has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring',\n SIZE[size],\n className,\n )}\n >\n <Radio ref={ref} id={inputId} className=\"absolute right-3 top-3\" {...props} />\n <div className=\"flex items-start gap-3 pr-7\">\n {icon && <span className=\"text-muted-foreground\">{icon}</span>}\n <div className=\"min-w-0 flex-1\">\n <div className=\"font-medium text-foreground\">{label}</div>\n {description && <div className=\"mt-0.5 text-muted-foreground\">{description}</div>}\n </div>\n </div>\n </label>\n );\n },\n);\nChoiceCard.displayName = 'ChoiceCard';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface PasswordStrengthProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n /** The password to measure. */\n value: string;\n /** Override the score (0–4). When set, internal scoring is bypassed. */\n score?: 0 | 1 | 2 | 3 | 4;\n /** Hide the textual label under the bar. */\n hideLabel?: boolean;\n}\n\nconst LABELS = ['Too weak', 'Weak', 'Fair', 'Strong', 'Excellent'];\nconst TONE = ['bg-destructive', 'bg-destructive', 'bg-warning', 'bg-success', 'bg-success'];\n\nfunction scorePassword(pw: string): 0 | 1 | 2 | 3 | 4 {\n let score = 0;\n if (pw.length >= 8) score++;\n if (pw.length >= 12) score++;\n if (/[a-z]/.test(pw) && /[A-Z]/.test(pw)) score++;\n if (/\\d/.test(pw)) score++;\n if (/[^A-Za-z0-9]/.test(pw)) score++;\n return Math.min(4, score) as 0 | 1 | 2 | 3 | 4;\n}\n\n/**\n * Strength meter for password fields. Naive rule-based scoring 0–4. Pass\n * `score` to override (e.g. drive from `zxcvbn`).\n */\nexport const PasswordStrength = forwardRef<HTMLDivElement, PasswordStrengthProps>(\n ({ value, score, hideLabel, className, ...props }, ref) => {\n const s: 0 | 1 | 2 | 3 | 4 = score ?? (value.length === 0 ? 0 : scorePassword(value));\n const label = LABELS[s] ?? '';\n const tone = TONE[s] ?? 'bg-destructive';\n return (\n <div ref={ref} className={cn('flex flex-col gap-1', className)} {...props}>\n <div className=\"flex gap-1\" aria-hidden=\"true\">\n {[0, 1, 2, 3].map((i) => (\n <div\n key={i}\n className={cn(\n 'h-1 flex-1 rounded-full bg-muted transition-colors',\n i < s && tone,\n )}\n />\n ))}\n </div>\n {!hideLabel && value && (\n <div className=\"text-xs text-muted-foreground\">{label}</div>\n )}\n </div>\n );\n },\n);\nPasswordStrength.displayName = 'PasswordStrength';\n","import { forwardRef, useImperativeHandle, useRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { Upload } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\n\nexport interface FilePickerProps extends Omit<ComponentPropsWithoutRef<'input'>, 'type' | 'value' | 'onChange' | 'size'> {\n /** Button label. Default `\"Choose file\"`. */\n label?: ReactNode;\n /** Fires with the chosen FileList when files are picked. */\n onFilesChange?: (files: FileList | null) => void;\n /** Filename(s) preview rendered next to the button. Pass `null` to hide. */\n preview?: ReactNode;\n /** Visual size of the button. Default `md`. */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst SIZE: Record<NonNullable<FilePickerProps['size']>, string> = {\n sm: 'h-8 px-3 text-sm',\n md: 'h-10 px-4 text-sm',\n lg: 'h-12 px-6 text-base',\n};\n\n/**\n * Basic file picker — styled trigger button + visually-hidden native\n * `<input type=\"file\">`. For drag-drop / preview / progress, use the L5\n * `Dropzone` organism (planned).\n */\nexport const FilePicker = forwardRef<HTMLInputElement, FilePickerProps>(\n ({ label = 'Choose file', onFilesChange, preview, size = 'md', className, disabled, ...props }, ref) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\n return (\n <div className={cn('inline-flex items-center gap-3', className)}>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => inputRef.current?.click()}\n className={cn(\n 'inline-flex items-center gap-2 rounded-md border border-input bg-background font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n SIZE[size],\n )}\n >\n <Icon icon={Upload} size={16} />\n {label}\n </button>\n <input\n ref={inputRef}\n type=\"file\"\n disabled={disabled}\n className=\"sr-only\"\n onChange={(e) => onFilesChange?.(e.target.files)}\n {...props}\n />\n {preview && <span className=\"truncate text-sm text-muted-foreground\">{preview}</span>}\n </div>\n );\n },\n);\nFilePicker.displayName = 'FilePicker';\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { type AvatarProps } from '../avatar/Avatar';
|
|
3
|
+
export interface AvatarGroupProps extends ComponentPropsWithoutRef<'div'> {
|
|
4
|
+
/** Maximum avatars to render. Excess is shown as a "+N" tile. */
|
|
5
|
+
max?: number;
|
|
6
|
+
/** Avatar size applied to all children. Default `md`. */
|
|
7
|
+
size?: AvatarProps['size'];
|
|
8
|
+
/** Negative-margin overlap class applied between avatars. Default `-ml-2`. */
|
|
9
|
+
overlap?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Stacked group of `Avatar` children with overlap and an optional "+N more"
|
|
13
|
+
* indicator when children exceed `max`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const AvatarGroup: import("react").ForwardRefExoticComponent<AvatarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
16
|
+
//# sourceMappingURL=AvatarGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../../src/display/avatarGroup/AvatarGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,wBAAwB,EAAqB,MAAM,OAAO,CAAC;AAE/G,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACvE,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,6GA+BvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/avatarGroup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export interface BadgeOverlayProps extends ComponentPropsWithoutRef<'div'> {
|
|
3
|
+
/** Element to overlay on (avatar, button, image). */
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/** Badge content (count, dot, icon). */
|
|
6
|
+
badge: ReactNode;
|
|
7
|
+
/** Position of the badge relative to the wrapper. Default `top-right`. */
|
|
8
|
+
position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
|
9
|
+
/** Hide badge when truthy (e.g. when count is 0). */
|
|
10
|
+
hidden?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Decorator that overlays a badge / dot on top of any child. Use to
|
|
14
|
+
* attach `CountBadge`, `NotificationDot`, or arbitrary `Badge` to an
|
|
15
|
+
* `Avatar`, `IconButton`, or icon.
|
|
16
|
+
*/
|
|
17
|
+
export declare const BadgeOverlay: import("react").ForwardRefExoticComponent<BadgeOverlayProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
18
|
+
//# sourceMappingURL=BadgeOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BadgeOverlay.d.ts","sourceRoot":"","sources":["../../../src/display/badgeOverlay/BadgeOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlF,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACxE,qDAAqD;IACrD,QAAQ,EAAE,SAAS,CAAC;IACpB,wCAAwC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;IACrE,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AASD;;;;GAIG;AACH,eAAO,MAAM,YAAY,8GASxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/badgeOverlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
type DivProps = ComponentPropsWithoutRef<'div'>;
|
|
3
|
+
export interface CardProps extends DivProps {
|
|
4
|
+
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Compound `Card` — raised surface for grouped content. Use sub-components
|
|
8
|
+
* for structure: `<Card.Header>` (with optional `<Card.Title>` /
|
|
9
|
+
* `<Card.Description>`), `<Card.Body>`, `<Card.Footer>`. Or pass
|
|
10
|
+
* `padding="md"` and free-form children for the simplest case.
|
|
11
|
+
*/
|
|
12
|
+
export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLDivElement>> & {
|
|
13
|
+
Header: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
+
Title: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
15
|
+
Description: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & import("react").RefAttributes<HTMLParagraphElement>>;
|
|
16
|
+
Body: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
17
|
+
Footer: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/display/card/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAGlE,KAAK,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAEhD,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACzC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACvC;AAqDD;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;CAMf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { type BadgeProps } from '../badge/Badge';
|
|
3
|
+
export interface CountBadgeProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
|
|
4
|
+
/** The numeric count. */
|
|
5
|
+
value: number;
|
|
6
|
+
/** Cap value — shows "max+" when exceeded. Default 99. */
|
|
7
|
+
max?: number;
|
|
8
|
+
/** Hide entirely when count is 0. Default true. */
|
|
9
|
+
hideZero?: boolean;
|
|
10
|
+
variant?: BadgeProps['variant'];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Numeric badge for notification / inbox counts. Displays "{value}" or
|
|
14
|
+
* "{max}+" once the cap is exceeded. Hides when `value === 0` unless
|
|
15
|
+
* `hideZero={false}`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const CountBadge: import("react").ForwardRefExoticComponent<CountBadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
18
|
+
//# sourceMappingURL=CountBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CountBadge.d.ts","sourceRoot":"","sources":["../../../src/display/countBadge/CountBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IACzF,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,6GAgBtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/countBadge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export interface DescriptionListItem {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
value: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export interface DescriptionListProps extends Omit<ComponentPropsWithoutRef<'dl'>, 'children'> {
|
|
7
|
+
items: DescriptionListItem[];
|
|
8
|
+
/** Layout direction. `inline` renders label/value on the same line; `stacked` puts label above. */
|
|
9
|
+
layout?: 'inline' | 'stacked';
|
|
10
|
+
/** Density between rows. Default `md`. */
|
|
11
|
+
density?: 'sm' | 'md' | 'lg';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Semantic `<dl>` for label-value pairs (settings panels, property lists).
|
|
15
|
+
* Inline layout uses a 2-column grid; stacked puts each value below its label.
|
|
16
|
+
*/
|
|
17
|
+
export declare const DescriptionList: import("react").ForwardRefExoticComponent<DescriptionListProps & import("react").RefAttributes<HTMLDListElement>>;
|
|
18
|
+
//# sourceMappingURL=DescriptionList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DescriptionList.d.ts","sourceRoot":"","sources":["../../../src/display/descriptionList/DescriptionList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC5F,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,mGAAmG;IACnG,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC9B;AAQD;;;GAGG;AACH,eAAO,MAAM,eAAe,mHAoB3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/descriptionList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export interface EmptyStateProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {
|
|
3
|
+
/** Optional icon (lucide or custom). */
|
|
4
|
+
icon?: ReactNode;
|
|
5
|
+
/** Heading copy. */
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
/** Body copy below the title. */
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
/** Action(s) — usually one or two `<Button>` elements. */
|
|
10
|
+
actions?: ReactNode;
|
|
11
|
+
/** Visual size. Default `md`. */
|
|
12
|
+
size?: 'sm' | 'md' | 'lg';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Empty-list / no-results affordance: icon + title + description + actions.
|
|
16
|
+
* Pass any subset; the component centers everything vertically.
|
|
17
|
+
*/
|
|
18
|
+
export declare const EmptyState: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
19
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/display/emptyState/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlF,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACrF,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,iCAAiC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iCAAiC;IACjC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAQD;;;GAGG;AACH,eAAO,MAAM,UAAU,4GA2BtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/emptyState/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
export interface HighlightProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
|
|
3
|
+
/** Source text to render. */
|
|
4
|
+
children: string;
|
|
5
|
+
/** Substring(s) to highlight. Match is case-insensitive. */
|
|
6
|
+
query: string | string[];
|
|
7
|
+
/** When `true`, only highlights whole-word matches. Default `false`. */
|
|
8
|
+
wholeWord?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Wraps each occurrence of `query` (or any of `query[]`) inside the
|
|
12
|
+
* `children` text in a `<Mark>`. Case-insensitive; pass `wholeWord` to
|
|
13
|
+
* avoid partial matches.
|
|
14
|
+
*/
|
|
15
|
+
export declare const Highlight: import("react").ForwardRefExoticComponent<HighlightProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
16
|
+
//# sourceMappingURL=Highlight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Highlight.d.ts","sourceRoot":"","sources":["../../../src/display/highlight/Highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,wBAAwB,EAAkB,MAAM,OAAO,CAAC;AAI5F,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IACxF,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD;;;;GAIG;AACH,eAAO,MAAM,SAAS,4GAuBrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/highlight/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/display/index.d.ts
CHANGED
|
@@ -9,4 +9,19 @@ export * from './tag';
|
|
|
9
9
|
export * from './separator';
|
|
10
10
|
export * from './mark';
|
|
11
11
|
export * from './quote';
|
|
12
|
+
export * from './card';
|
|
13
|
+
export * from './avatarGroup';
|
|
14
|
+
export * from './tooltip';
|
|
15
|
+
export * from './emptyState';
|
|
16
|
+
export * from './stat';
|
|
17
|
+
export * from './snippet';
|
|
18
|
+
export * from './notificationDot';
|
|
19
|
+
export * from './countBadge';
|
|
20
|
+
export * from './status';
|
|
21
|
+
export * from './keyboardShortcut';
|
|
22
|
+
export * from './descriptionList';
|
|
23
|
+
export * from './infoRow';
|
|
24
|
+
export * from './badgeOverlay';
|
|
25
|
+
export * from './sectionHeader';
|
|
26
|
+
export * from './highlight';
|
|
12
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
package/dist/display/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
export { Avatar, Badge, Code, Heading, Image, Kbd, Mark, Quote, Separator, Tag, Text, avatarVariants, badgeVariants, codeVariants, headingVariants, tagVariants, textVariants } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Code, CountBadge, DescriptionList, EmptyState, Heading, Highlight, Image, InfoRow, Kbd, KeyboardShortcut, Mark, NotificationDot, Quote, SectionHeader, Separator, Snippet, Stat, Status, Tag, Text, Tooltip, avatarVariants, badgeVariants, codeVariants, headingVariants, tagVariants, textVariants } from '../chunk-7SGLT2LM.js';
|
|
2
|
+
import '../chunk-SL5YJADS.js';
|
|
3
|
+
import '../chunk-WEM32VIJ.js';
|
|
4
|
+
import '../chunk-4P2TFUVW.js';
|
|
5
|
+
import '../chunk-33IOXQYO.js';
|
|
6
|
+
import '../chunk-KDXJQNB6.js';
|
|
3
7
|
import '../chunk-BMBIZLO4.js';
|
|
8
|
+
import '../chunk-TDX22OWF.js';
|
|
4
9
|
import '../chunk-DN7WBRIV.js';
|
|
5
10
|
import '../chunk-KZ4VFY2T.js';
|
|
6
11
|
import '../chunk-PZ5AY32C.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export interface InfoRowProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
value: ReactNode;
|
|
5
|
+
/** Optional icon rendered before the label. */
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
/** Layout: `inline` puts label-value on one line; `stacked` puts value below. Default `inline`. */
|
|
8
|
+
layout?: 'inline' | 'stacked';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Single row of label + value, with optional leading icon. Reach for this
|
|
12
|
+
* when you have one or two pairs to show (e.g. inside a Card row); use
|
|
13
|
+
* `DescriptionList` for many pairs.
|
|
14
|
+
*/
|
|
15
|
+
export declare const InfoRow: import("react").ForwardRefExoticComponent<InfoRowProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
16
|
+
//# sourceMappingURL=InfoRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InfoRow.d.ts","sourceRoot":"","sources":["../../../src/display/infoRow/InfoRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlF,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACrF,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mGAAmG;IACnG,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,yGAkBnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/infoRow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
export interface KeyboardShortcutProps extends ComponentPropsWithoutRef<'span'> {
|
|
3
|
+
/** Keys in order — e.g. `['⌘', 'K']` or `['Ctrl', 'Shift', 'P']`. */
|
|
4
|
+
keys: string[];
|
|
5
|
+
/** Connector between keys. Default `'+'`; pass `' '` for spaced keys. */
|
|
6
|
+
separator?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Render a sequence of `Kbd` keys with connectors between them — e.g.
|
|
10
|
+
* `<KeyboardShortcut keys={['⌘', 'K']} />` → ⌘ + K.
|
|
11
|
+
*/
|
|
12
|
+
export declare const KeyboardShortcut: import("react").ForwardRefExoticComponent<KeyboardShortcutProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
13
|
+
//# sourceMappingURL=KeyboardShortcut.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../src/display/keyboardShortcut/KeyboardShortcut.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAI5E,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB,CAAC,MAAM,CAAC;IAC7E,qEAAqE;IACrE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,mHAe5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/display/keyboardShortcut/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|