@vritti/quantum-ui 0.5.2 → 0.5.4
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/StatusSwitch.js +2 -2
- package/dist/StatusSwitch.js.map +1 -1
- package/dist/assets/quantum-ui.css +4 -0
- package/dist/field.js +1 -1
- package/dist/field.js.map +1 -1
- package/dist/index.esm.js +1429 -810
- package/dist/index.esm.js.map +1 -1
- package/dist/lib/components/DataTable/hooks/useDataTable.d.ts +2 -2
- package/dist/lib/components/DataTable/hooks/useDataTable.d.ts.map +1 -1
- package/dist/lib/components/Select/types.d.ts +2 -1
- package/dist/lib/components/Select/types.d.ts.map +1 -1
- package/dist/lib/components/StatusSwitch/StatusSwitch.d.ts.map +1 -1
- package/dist/schemas.js.map +1 -1
- package/dist/shadcn/shadcnForm/form.d.ts +2 -2
- package/dist/shadcn/shadcnForm/form.d.ts.map +1 -1
- package/dist/useDataTable.js +1 -1
- package/dist/useDataTable.js.map +1 -1
- package/package.json +5 -5
package/dist/StatusSwitch.js
CHANGED
|
@@ -54,7 +54,7 @@ const StatusSwitch = ({
|
|
|
54
54
|
"inline-flex items-center gap-2 rounded-full border border-dotted transition-colors duration-200",
|
|
55
55
|
dimensions.pill,
|
|
56
56
|
checked ? pill : "border-border bg-transparent",
|
|
57
|
-
isBlocked && "opacity-
|
|
57
|
+
isBlocked && "opacity-70",
|
|
58
58
|
className
|
|
59
59
|
),
|
|
60
60
|
children: [
|
|
@@ -75,7 +75,7 @@ const StatusSwitch = ({
|
|
|
75
75
|
CompactSwitch,
|
|
76
76
|
{
|
|
77
77
|
size: dimensions.switchSize,
|
|
78
|
-
className: track,
|
|
78
|
+
className: cn(track, "disabled:opacity-100"),
|
|
79
79
|
checked,
|
|
80
80
|
permission,
|
|
81
81
|
disabled: isBlocked,
|
package/dist/StatusSwitch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusSwitch.js","sources":["../lib/components/StatusSwitch/StatusSwitch.tsx"],"sourcesContent":["import type React from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport { CompactSwitch } from '../Switch';\n\nexport type StatusSwitchTone = 'success' | 'primary' | 'warning' | 'destructive';\nexport type StatusSwitchSize = 'sm' | 'md' | 'lg';\n\nconst TONES: Record<StatusSwitchTone, { pill: string; label: string; track: string }> = {\n success: {\n pill: 'border-success/40 bg-success/10',\n label: 'text-success',\n track: 'data-[state=checked]:bg-success',\n },\n primary: {\n pill: 'border-primary/40 bg-primary/10',\n label: 'text-primary',\n track: 'data-[state=checked]:bg-primary',\n },\n warning: {\n pill: 'border-warning/40 bg-warning/10',\n label: 'text-warning',\n track: 'data-[state=checked]:bg-warning',\n },\n destructive: {\n pill: 'border-destructive/40 bg-destructive/10',\n label: 'text-destructive',\n track: 'data-[state=checked]:bg-destructive',\n },\n};\n\nconst SIZES: Record<StatusSwitchSize, { switchSize: 'sm' | 'default' | 'lg'; label: string; pill: string }> = {\n sm: { switchSize: 'sm', label: 'text-[10px]', pill: 'py-1 pr-1.5 pl-2.5' },\n md: { switchSize: 'default', label: 'text-[11px]', pill: 'py-1 pr-1.5 pl-3' },\n lg: { switchSize: 'lg', label: 'text-xs', pill: 'py-1.5 pr-2 pl-3.5' },\n};\n\nexport interface StatusSwitchProps {\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n ariaLabel: string;\n activeLabel?: string;\n inactiveLabel?: string;\n showLabels?: boolean;\n tone?: StatusSwitchTone;\n size?: StatusSwitchSize;\n permission?: string;\n disabled?: boolean;\n disabledTip?: string;\n isLoading?: boolean;\n className?: string;\n}\n\n// A switch that names the state it is in, for a row or header that toggles one flag. The label pair occupies one grid\n// cell and slides, so the control never changes width as it flips and a column of them stays aligned.\nexport const StatusSwitch: React.FC<StatusSwitchProps> = ({\n checked,\n onCheckedChange,\n ariaLabel,\n activeLabel = 'Active',\n inactiveLabel = 'Inactive',\n showLabels = true,\n tone = 'success',\n size = 'sm',\n permission,\n disabled,\n disabledTip,\n isLoading,\n className,\n}) => {\n const { pill, label, track } = TONES[tone];\n const dimensions = SIZES[size];\n // Saving is not a reason the control is unavailable, so it blocks input without claiming one\n const isBlocked = disabled || isLoading;\n\n return (\n <div\n className={cn(\n 'inline-flex items-center gap-2 rounded-full border border-dotted transition-colors duration-200',\n dimensions.pill,\n checked ? pill : 'border-border bg-transparent',\n isBlocked && 'opacity-
|
|
1
|
+
{"version":3,"file":"StatusSwitch.js","sources":["../lib/components/StatusSwitch/StatusSwitch.tsx"],"sourcesContent":["import type React from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport { CompactSwitch } from '../Switch';\n\nexport type StatusSwitchTone = 'success' | 'primary' | 'warning' | 'destructive';\nexport type StatusSwitchSize = 'sm' | 'md' | 'lg';\n\nconst TONES: Record<StatusSwitchTone, { pill: string; label: string; track: string }> = {\n success: {\n pill: 'border-success/40 bg-success/10',\n label: 'text-success',\n track: 'data-[state=checked]:bg-success',\n },\n primary: {\n pill: 'border-primary/40 bg-primary/10',\n label: 'text-primary',\n track: 'data-[state=checked]:bg-primary',\n },\n warning: {\n pill: 'border-warning/40 bg-warning/10',\n label: 'text-warning',\n track: 'data-[state=checked]:bg-warning',\n },\n destructive: {\n pill: 'border-destructive/40 bg-destructive/10',\n label: 'text-destructive',\n track: 'data-[state=checked]:bg-destructive',\n },\n};\n\nconst SIZES: Record<StatusSwitchSize, { switchSize: 'sm' | 'default' | 'lg'; label: string; pill: string }> = {\n sm: { switchSize: 'sm', label: 'text-[10px]', pill: 'py-1 pr-1.5 pl-2.5' },\n md: { switchSize: 'default', label: 'text-[11px]', pill: 'py-1 pr-1.5 pl-3' },\n lg: { switchSize: 'lg', label: 'text-xs', pill: 'py-1.5 pr-2 pl-3.5' },\n};\n\nexport interface StatusSwitchProps {\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n ariaLabel: string;\n activeLabel?: string;\n inactiveLabel?: string;\n showLabels?: boolean;\n tone?: StatusSwitchTone;\n size?: StatusSwitchSize;\n permission?: string;\n disabled?: boolean;\n disabledTip?: string;\n isLoading?: boolean;\n className?: string;\n}\n\n// A switch that names the state it is in, for a row or header that toggles one flag. The label pair occupies one grid\n// cell and slides, so the control never changes width as it flips and a column of them stays aligned.\nexport const StatusSwitch: React.FC<StatusSwitchProps> = ({\n checked,\n onCheckedChange,\n ariaLabel,\n activeLabel = 'Active',\n inactiveLabel = 'Inactive',\n showLabels = true,\n tone = 'success',\n size = 'sm',\n permission,\n disabled,\n disabledTip,\n isLoading,\n className,\n}) => {\n const { pill, label, track } = TONES[tone];\n const dimensions = SIZES[size];\n // Saving is not a reason the control is unavailable, so it blocks input without claiming one\n const isBlocked = disabled || isLoading;\n\n return (\n <div\n className={cn(\n 'inline-flex items-center gap-2 rounded-full border border-dotted transition-colors duration-200',\n dimensions.pill,\n checked ? pill : 'border-border bg-transparent',\n isBlocked && 'opacity-70',\n className,\n )}\n >\n {showLabels && (\n <span aria-hidden className=\"grid justify-items-end\">\n {[inactiveLabel, activeLabel].map((text, index) => (\n <span\n // biome-ignore lint/suspicious/noArrayIndexKey: a fixed pair of slots, not a reorderable list\n key={index}\n className={cn(\n 'col-start-1 row-start-1 select-none font-semibold uppercase leading-none tracking-[0.08em] transition-all duration-200',\n dimensions.label,\n checked === (index === 1) ? 'translate-y-0 opacity-100' : '-translate-y-1 opacity-0',\n index === 1 ? label : 'text-muted-foreground',\n )}\n >\n {text}\n </span>\n ))}\n </span>\n )}\n {/* The pill already dims as a whole, and CSS opacity multiplies down the tree — leaving the switch's own\n disabled:opacity-50 in place would render the control at 35% against a 70% label */}\n <CompactSwitch\n size={dimensions.switchSize}\n className={cn(track, 'disabled:opacity-100')}\n checked={checked}\n permission={permission}\n disabled={isBlocked}\n disabledTip={disabled ? disabledTip : undefined}\n onCheckedChange={onCheckedChange}\n aria-label={ariaLabel}\n />\n </div>\n );\n};\n\nStatusSwitch.displayName = 'StatusSwitch';\n"],"names":[],"mappings":"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"}
|
package/dist/field.js
CHANGED
|
@@ -29,7 +29,7 @@ function FieldLegend({
|
|
|
29
29
|
{
|
|
30
30
|
"data-slot": "field-legend",
|
|
31
31
|
"data-variant": variant,
|
|
32
|
-
className: cn("
|
|
32
|
+
className: cn("font-medium", "data-[variant=legend]:text-base", "data-[variant=label]:text-sm", className),
|
|
33
33
|
...props
|
|
34
34
|
}
|
|
35
35
|
);
|
package/dist/field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sources":["../shadcn/shadcnField/field.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useMemo } from 'react';\nimport { Label } from '../shadcnLabel';\nimport { Separator } from '../shadcnSeparator';\nimport { cn } from '../utils';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4',\n 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('
|
|
1
|
+
{"version":3,"file":"field.js","sources":["../shadcn/shadcnField/field.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useMemo } from 'react';\nimport { Label } from '../shadcnLabel';\nimport { Separator } from '../shadcnSeparator';\nimport { cn } from '../utils';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4',\n 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('font-medium', 'data-[variant=legend]:text-base', 'data-[variant=label]:text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-2 data-[slot=checkbox-group]:gap-1 [&>[data-slot=field-group]]:gap-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('group/field flex w-full gap-2 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: ['flex-col [&>*]:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n '[&>[data-slot=field-label]]:flex-auto',\n 'has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n responsive: [\n 'flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto',\n '@md/field-group:[&>[data-slot=field-label]]:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('group/field-content flex flex-1 flex-col gap-1.5 leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-70',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4',\n 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-70',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-muted-foreground text-xs leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance',\n 'last:-mt-1 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n if (errors?.length === 1) {\n return errors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map((error) => error?.message && <li key={error.message}>{error.message}</li>)}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-destructive text-sm font-normal', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n};\n"],"names":[],"mappings":"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"}
|