@adminiumjs/ui 0.2.9 → 0.3.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/alert/Alert.d.ts +1 -1
- package/dist/components/alert/Alert.js +1 -1
- package/dist/components/auth-layout/AuthLayout.d.ts +6 -6
- package/dist/components/auth-layout/AuthLayout.js +6 -6
- package/dist/components/auth-screens/ForgotPasswordForm.d.ts +5 -6
- package/dist/components/auth-screens/ForgotPasswordForm.d.ts.map +1 -1
- package/dist/components/auth-screens/ForgotPasswordForm.js.map +1 -1
- package/dist/components/autosave-indicator/AutosaveIndicator.d.ts +2 -2
- package/dist/components/autosave-indicator/AutosaveIndicator.js +1 -1
- package/dist/components/avatar/Avatar.d.ts +5 -5
- package/dist/components/avatar/Avatar.js +5 -5
- package/dist/components/avatar-stack/AvatarStack.d.ts +1 -1
- package/dist/components/avatar-stack/AvatarStack.js +1 -1
- package/dist/components/badge/Badge.d.ts +1 -1
- package/dist/components/badge/Badge.js +1 -1
- package/dist/components/badge/index.js +2 -2
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/banner/Banner.d.ts +1 -1
- package/dist/components/banner/Banner.js +1 -1
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/dist/components/breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/bulk-action-bar/BulkActionBar.d.ts +2 -2
- package/dist/components/bulk-action-bar/BulkActionBar.js +2 -2
- package/dist/components/button/Button.d.ts +3 -3
- package/dist/components/button/Button.js +3 -3
- package/dist/components/card/Card.d.ts +1 -1
- package/dist/components/card/Card.js +1 -1
- package/dist/components/check-row/CheckRow.d.ts +34 -0
- package/dist/components/check-row/CheckRow.d.ts.map +1 -0
- package/dist/components/check-row/CheckRow.js +53 -0
- package/dist/components/check-row/CheckRow.js.map +1 -0
- package/dist/components/check-row/index.d.ts +3 -0
- package/dist/components/check-row/index.d.ts.map +1 -0
- package/dist/components/check-row/index.js +3 -0
- package/dist/components/check-row/index.js.map +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +1 -1
- package/dist/components/checkbox/Checkbox.js +1 -1
- package/dist/components/chip-input/ChipInput.d.ts +9 -2
- package/dist/components/chip-input/ChipInput.d.ts.map +1 -1
- package/dist/components/chip-input/ChipInput.js +3 -3
- package/dist/components/chip-input/ChipInput.js.map +1 -1
- package/dist/components/choice-chips/ChoiceChips.d.ts +2 -2
- package/dist/components/choice-chips/ChoiceChips.js +2 -2
- package/dist/components/combobox/Combobox.d.ts +1 -1
- package/dist/components/combobox/Combobox.js +1 -1
- package/dist/components/command-palette/CommandPalette.d.ts +1 -1
- package/dist/components/command-palette/CommandPalette.js +1 -1
- package/dist/components/command-palette/useCommandK.d.ts +4 -3
- package/dist/components/command-palette/useCommandK.d.ts.map +1 -1
- package/dist/components/command-palette/useCommandK.js +4 -3
- package/dist/components/command-palette/useCommandK.js.map +1 -1
- package/dist/components/confirm-modal/ConfirmModal.d.ts +7 -7
- package/dist/components/confirm-modal/ConfirmModal.js +1 -1
- package/dist/components/count-badge/CountBadge.d.ts +1 -1
- package/dist/components/count-badge/CountBadge.js +1 -1
- package/dist/components/date-input/DateInput.d.ts +1 -1
- package/dist/components/date-input/DateInput.js +1 -1
- package/dist/components/delta-pill/DeltaPill.d.ts +1 -1
- package/dist/components/delta-pill/DeltaPill.js +1 -1
- package/dist/components/divider/Divider.d.ts +1 -1
- package/dist/components/divider/Divider.js +1 -1
- package/dist/components/drawer/Drawer.d.ts +3 -3
- package/dist/components/drawer/Drawer.js +2 -2
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.js +1 -1
- package/dist/components/empty-state/EmptyState.d.ts +1 -1
- package/dist/components/empty-state/EmptyState.js +1 -1
- package/dist/components/filter-chip/FilterChip.d.ts +1 -1
- package/dist/components/filter-chip/FilterChip.js +1 -1
- package/dist/components/form-dialog/FormDialog.d.ts +79 -0
- package/dist/components/form-dialog/FormDialog.d.ts.map +1 -0
- package/dist/components/form-dialog/FormDialog.js +76 -0
- package/dist/components/form-dialog/FormDialog.js.map +1 -0
- package/dist/components/form-dialog/index.d.ts +3 -0
- package/dist/components/form-dialog/index.d.ts.map +1 -0
- package/dist/components/form-dialog/index.js +3 -0
- package/dist/components/form-dialog/index.js.map +1 -0
- package/dist/components/form-field/FormField.d.ts +1 -1
- package/dist/components/form-field/FormField.d.ts.map +1 -1
- package/dist/components/form-field/FormField.js +3 -2
- package/dist/components/form-field/FormField.js.map +1 -1
- package/dist/components/icon/Icon.d.ts +6 -6
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +1 -1
- package/dist/components/icon/Icon.js.map +1 -1
- package/dist/components/icon/icon-names.js +3 -3
- package/dist/components/icon/icon-names.js.map +1 -1
- package/dist/components/icon-button/IconButton.d.ts +2 -2
- package/dist/components/icon-button/IconButton.js +2 -2
- package/dist/components/icon-tile/IconTile.d.ts +1 -1
- package/dist/components/icon-tile/IconTile.js +2 -2
- package/dist/components/icon-tile/IconTile.js.map +1 -1
- package/dist/components/input/Input.d.ts +2 -2
- package/dist/components/input/Input.js +2 -2
- package/dist/components/input-group/InputGroup.d.ts +2 -2
- package/dist/components/input-group/InputGroup.js +2 -2
- package/dist/components/kbd/Kbd.d.ts +1 -1
- package/dist/components/kbd/Kbd.js +1 -1
- package/dist/components/key-value-list/KeyValueList.d.ts +1 -1
- package/dist/components/key-value-list/KeyValueList.js +1 -1
- package/dist/components/label/Label.d.ts +1 -1
- package/dist/components/label/Label.js +1 -1
- package/dist/components/meta-pill/MetaPill.d.ts +23 -0
- package/dist/components/meta-pill/MetaPill.d.ts.map +1 -0
- package/dist/components/meta-pill/MetaPill.js +19 -0
- package/dist/components/meta-pill/MetaPill.js.map +1 -0
- package/dist/components/meta-pill/index.d.ts +2 -0
- package/dist/components/meta-pill/index.d.ts.map +1 -0
- package/dist/components/meta-pill/index.js +3 -0
- package/dist/components/meta-pill/index.js.map +1 -0
- package/dist/components/modal/Modal.d.ts +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +3 -2
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/mono-text/MonoText.d.ts +2 -3
- package/dist/components/mono-text/MonoText.d.ts.map +1 -1
- package/dist/components/mono-text/MonoText.js +2 -3
- package/dist/components/mono-text/MonoText.js.map +1 -1
- package/dist/components/month-calendar/MonthCalendar.d.ts +46 -0
- package/dist/components/month-calendar/MonthCalendar.d.ts.map +1 -0
- package/dist/components/month-calendar/MonthCalendar.js +55 -0
- package/dist/components/month-calendar/MonthCalendar.js.map +1 -0
- package/dist/components/month-calendar/index.d.ts +2 -0
- package/dist/components/month-calendar/index.d.ts.map +1 -0
- package/dist/components/month-calendar/index.js +3 -0
- package/dist/components/month-calendar/index.js.map +1 -0
- package/dist/components/number-stepper/NumberStepper.d.ts +16 -2
- package/dist/components/number-stepper/NumberStepper.d.ts.map +1 -1
- package/dist/components/number-stepper/NumberStepper.js +22 -3
- package/dist/components/number-stepper/NumberStepper.js.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +1 -1
- package/dist/components/pagination/Pagination.js +1 -1
- package/dist/components/password-strength/PasswordStrength.d.ts +1 -1
- package/dist/components/password-strength/PasswordStrength.js +1 -1
- package/dist/components/permission-matrix/PermissionMatrix.d.ts +3 -3
- package/dist/components/popover/Popover.d.ts +1 -1
- package/dist/components/popover/Popover.js +1 -1
- package/dist/components/progress-bar/ProgressBar.d.ts +1 -1
- package/dist/components/progress-bar/ProgressBar.js +2 -2
- package/dist/components/progress-bar/ProgressBar.js.map +1 -1
- package/dist/components/radio/Radio.d.ts +2 -2
- package/dist/components/radio/Radio.js +2 -2
- package/dist/components/radio-card/RadioCard.d.ts +18 -8
- package/dist/components/radio-card/RadioCard.d.ts.map +1 -1
- package/dist/components/radio-card/RadioCard.js +4 -4
- package/dist/components/radio-card/RadioCard.js.map +1 -1
- package/dist/components/runtime-chip/RuntimeChip.d.ts +9 -9
- package/dist/components/runtime-chip/RuntimeChip.js +8 -8
- package/dist/components/search-input/SearchInput.d.ts +1 -1
- package/dist/components/search-input/SearchInput.js +1 -1
- package/dist/components/secret-input/SecretInput.d.ts +1 -1
- package/dist/components/secret-input/SecretInput.js +1 -1
- package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
- package/dist/components/segmented-control/SegmentedControl.js +1 -1
- package/dist/components/select/Select.d.ts +1 -1
- package/dist/components/select/Select.js +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +1 -1
- package/dist/components/skeleton/Skeleton.js +2 -2
- package/dist/components/skeleton/Skeleton.js.map +1 -1
- package/dist/components/slider/Slider.d.ts +1 -1
- package/dist/components/slider/Slider.js +1 -1
- package/dist/components/slot-grid/SlotGrid.d.ts +37 -0
- package/dist/components/slot-grid/SlotGrid.d.ts.map +1 -0
- package/dist/components/slot-grid/SlotGrid.js +47 -0
- package/dist/components/slot-grid/SlotGrid.js.map +1 -0
- package/dist/components/slot-grid/index.d.ts +2 -0
- package/dist/components/slot-grid/index.d.ts.map +1 -0
- package/dist/components/slot-grid/index.js +3 -0
- package/dist/components/slot-grid/index.js.map +1 -0
- package/dist/components/snackbar/Snackbar.d.ts +1 -1
- package/dist/components/snackbar/Snackbar.js +1 -1
- package/dist/components/spinner/Spinner.d.ts +1 -1
- package/dist/components/spinner/Spinner.js +1 -1
- package/dist/components/status-pill/StatusPill.d.ts +1 -1
- package/dist/components/status-pill/StatusPill.js +5 -5
- package/dist/components/status-pill/StatusPill.js.map +1 -1
- package/dist/components/step-rail/StepRail.d.ts +36 -0
- package/dist/components/step-rail/StepRail.d.ts.map +1 -0
- package/dist/components/step-rail/StepRail.js +28 -0
- package/dist/components/step-rail/StepRail.js.map +1 -0
- package/dist/components/step-rail/index.d.ts +2 -0
- package/dist/components/step-rail/index.d.ts.map +1 -0
- package/dist/components/step-rail/index.js +3 -0
- package/dist/components/step-rail/index.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +1 -1
- package/dist/components/stepper/Stepper.js +1 -1
- package/dist/components/success-state/SuccessState.d.ts +1 -2
- package/dist/components/success-state/SuccessState.d.ts.map +1 -1
- package/dist/components/success-state/SuccessState.js +1 -2
- package/dist/components/success-state/SuccessState.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +2 -2
- package/dist/components/switch/Switch.js +2 -2
- package/dist/components/tabs/Tabs.d.ts +1 -1
- package/dist/components/tabs/Tabs.js +1 -1
- package/dist/components/tag/Tag.d.ts +1 -1
- package/dist/components/tag/Tag.js +1 -1
- package/dist/components/textarea/Textarea.d.ts +1 -1
- package/dist/components/textarea/Textarea.js +1 -1
- package/dist/components/toast/Toast.d.ts +5 -6
- package/dist/components/toast/Toast.d.ts.map +1 -1
- package/dist/components/toast/Toast.js +5 -6
- package/dist/components/toast/Toast.js.map +1 -1
- package/dist/components/toast/useToastQueue.d.ts +6 -7
- package/dist/components/toast/useToastQueue.d.ts.map +1 -1
- package/dist/components/toast/useToastQueue.js +6 -7
- package/dist/components/toast/useToastQueue.js.map +1 -1
- package/dist/components/toggle-row/ToggleRow.d.ts +33 -0
- package/dist/components/toggle-row/ToggleRow.d.ts.map +1 -0
- package/dist/components/toggle-row/ToggleRow.js +41 -0
- package/dist/components/toggle-row/ToggleRow.js.map +1 -0
- package/dist/components/toggle-row/index.d.ts +3 -0
- package/dist/components/toggle-row/index.d.ts.map +1 -0
- package/dist/components/toggle-row/index.js +3 -0
- package/dist/components/toggle-row/index.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +1 -1
- package/dist/components/tooltip/Tooltip.js +1 -1
- package/dist/components/two-phase-modal/TwoPhaseModal.d.ts +3 -4
- package/dist/components/two-phase-modal/TwoPhaseModal.d.ts.map +1 -1
- package/dist/components/two-phase-modal/TwoPhaseModal.js +3 -4
- package/dist/components/two-phase-modal/TwoPhaseModal.js.map +1 -1
- package/dist/hooks/useUndoableAction.d.ts +5 -5
- package/dist/hooks/useUndoableAction.js +5 -5
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/cn.d.ts +3 -4
- package/dist/lib/cn.d.ts.map +1 -1
- package/dist/lib/cn.js +3 -4
- package/dist/lib/cn.js.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/tones.d.ts +10 -9
- package/dist/lib/tones.d.ts.map +1 -1
- package/dist/lib/tones.js +10 -9
- package/dist/lib/tones.js.map +1 -1
- package/dist/lib/week.d.ts +37 -0
- package/dist/lib/week.d.ts.map +1 -0
- package/dist/lib/week.js +71 -0
- package/dist/lib/week.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +4 -5
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/ThemeProvider.js +19 -19
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/context.d.ts +6 -5
- package/dist/theme/context.d.ts.map +1 -1
- package/dist/theme/context.js.map +1 -1
- package/dist/theme/subscribe.d.ts +4 -4
- package/dist/theme/subscribe.js +1 -1
- package/dist/theme/types.d.ts +10 -10
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/types.js +4 -4
- package/dist/theme/types.js.map +1 -1
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +2 -3
- package/dist/theme/useTheme.js.map +1 -1
- package/package.json +2 -2
|
@@ -21,7 +21,7 @@ export interface AlertProps extends Omit<ComponentPropsWithRef<'div'>, 'title'>
|
|
|
21
21
|
/**
|
|
22
22
|
* Alert / Callout — tone-soft background + `color-mix` tone border, icon +
|
|
23
23
|
* title + body + optional CTA; tones info/pos/warn/danger
|
|
24
|
-
* (research/design-system.md
|
|
24
|
+
* (research/design-system.md Tier 3).
|
|
25
25
|
*/
|
|
26
26
|
export declare function Alert({ tone, icon, title, body, action, className, children, ...props }: AlertProps): import("react").JSX.Element;
|
|
27
27
|
//# sourceMappingURL=Alert.d.ts.map
|
|
@@ -18,7 +18,7 @@ const defaultIcons = {
|
|
|
18
18
|
/**
|
|
19
19
|
* Alert / Callout — tone-soft background + `color-mix` tone border, icon +
|
|
20
20
|
* title + body + optional CTA; tones info/pos/warn/danger
|
|
21
|
-
* (research/design-system.md
|
|
21
|
+
* (research/design-system.md Tier 3).
|
|
22
22
|
*/
|
|
23
23
|
export function Alert({ tone = 'info', icon, title, body, action, className, children, ...props }) {
|
|
24
24
|
return (_jsxs("div", { "data-tone": tone, className: cn('flex items-start gap-3 rounded-lg border p-3.5', toneClasses[tone], toneMixBorderClasses[tone], className), ...props, children: [_jsx("span", { "data-part": "alert-icon", "aria-hidden": "true", className: "mt-px shrink-0 [&_svg]:size-4 [&_svg]:stroke-2", children: icon ?? defaultIcons[tone] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-body font-bold leading-snug text-fg", children: title }), body === undefined && children === undefined ? null : (_jsx("div", { className: "mt-0.5 text-body-sm text-fg-muted", children: body ?? children })), action === undefined || action === null ? null : _jsx("div", { className: "mt-2", children: action })] })] }));
|
|
@@ -26,12 +26,12 @@ export interface AuthLayoutProps extends Omit<ComponentPropsWithRef<'div'>, 'sty
|
|
|
26
26
|
children: ReactNode;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* AuthLayout — Tier-5 auth shell (research/design-system.md
|
|
30
|
-
* Login.dc.html + Auth & Onboarding.dc.html): split
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
29
|
+
* AuthLayout — Tier-5 auth shell (research/design-system.md Tier 5,
|
|
30
|
+
* Login.dc.html + Auth & Onboarding.dc.html): split brand panel with the
|
|
31
|
+
* accent gradient, logo block, testimonial + trust-badge slots, and a 380px
|
|
32
|
+
* form column. The brand panel is purely decorative marketing surface: it is
|
|
33
|
+
* `aria-hidden`, collapses away below `lg`, and the layout uses logical flow
|
|
34
|
+
* only, so RTL mirrors for free.
|
|
35
35
|
*/
|
|
36
36
|
export declare function AuthLayout({ variant, logo, headline, description, brandContent, testimonial, trustBadges, corner, footer, className, children, ...props }: AuthLayoutProps): import("react").JSX.Element;
|
|
37
37
|
export interface AuthTestimonialProps extends Omit<ComponentPropsWithRef<'figure'>, 'style' | 'role'> {
|
|
@@ -23,12 +23,12 @@ import { cn } from '../../lib/cn.js';
|
|
|
23
23
|
*/
|
|
24
24
|
const brandGradientClass = 'bg-[var(--accent-light)] bg-[linear-gradient(155deg,var(--accent-light),color-mix(in_srgb,var(--accent-light)_62%,#000))]';
|
|
25
25
|
/**
|
|
26
|
-
* AuthLayout — Tier-5 auth shell (research/design-system.md
|
|
27
|
-
* Login.dc.html + Auth & Onboarding.dc.html): split
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
26
|
+
* AuthLayout — Tier-5 auth shell (research/design-system.md Tier 5,
|
|
27
|
+
* Login.dc.html + Auth & Onboarding.dc.html): split brand panel with the
|
|
28
|
+
* accent gradient, logo block, testimonial + trust-badge slots, and a 380px
|
|
29
|
+
* form column. The brand panel is purely decorative marketing surface: it is
|
|
30
|
+
* `aria-hidden`, collapses away below `lg`, and the layout uses logical flow
|
|
31
|
+
* only, so RTL mirrors for free.
|
|
32
32
|
*/
|
|
33
33
|
export function AuthLayout({ variant = 'split', logo, headline, description, brandContent, testimonial, trustBadges, corner, footer, className, children, ...props }) {
|
|
34
34
|
return (_jsxs("div", { "data-part": "auth-layout", "data-variant": variant, className: cn('flex min-h-dvh w-full bg-bg text-fg', className), ...props, children: [variant === 'split' ? (_jsxs("div", { "data-part": "auth-brand-panel", "aria-hidden": "true", className: cn('hidden w-[44%] shrink-0 select-none flex-col justify-between gap-10 overflow-hidden p-11 text-white lg:flex', brandGradientClass), children: [_jsx("div", { "data-part": "auth-brand-logo", children: logo }), _jsxs("div", { className: "flex max-w-[440px] flex-col items-start", children: [headline === undefined ? null : (_jsx("div", { className: "text-[32px] font-extrabold leading-[1.15] tracking-[-0.03em]", children: headline })), description === undefined ? null : (_jsx("div", { className: "mt-4 max-w-[40ch] text-[15px] leading-relaxed text-white/90", children: description })), brandContent === undefined ? null : _jsx("div", { className: "mt-7 w-full", children: brandContent }), testimonial === undefined ? null : (_jsx("div", { "data-part": "auth-testimonial-slot", className: "mt-7 w-full", children: testimonial }))] }), trustBadges === undefined ? (_jsx("div", {})) : (_jsx("div", { "data-part": "auth-trust-badges", className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-[12px] text-white/90", children: trustBadges }))] })) : null, _jsxs("div", { className: "relative flex min-w-0 flex-1 flex-col items-center justify-center p-6 sm:p-10", children: [corner === undefined ? null : (_jsx("div", { "data-part": "auth-corner", className: "absolute end-6 top-6", children: corner })), _jsxs("main", { "data-part": "auth-form-column", className: "w-full max-w-[380px]", children: [children, footer === undefined ? null : (_jsx("div", { "data-part": "auth-footer", className: "mt-7 flex items-center justify-center gap-1.5 text-center text-caption text-fg-subtle [&_svg]:size-3.5", children: footer }))] })] })] }));
|
|
@@ -28,12 +28,11 @@ export interface ForgotPasswordFormProps extends Omit<ComponentPropsWithRef<'for
|
|
|
28
28
|
/** Request in flight. */
|
|
29
29
|
loading?: boolean | undefined;
|
|
30
30
|
/**
|
|
31
|
-
* The instance cannot send this mail at all —
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* forbids.
|
|
31
|
+
* The instance cannot send this mail at all — email row ("Enabled only when
|
|
32
|
+
* SMTP is configured in settings; otherwise buttons disabled"). Distinct from
|
|
33
|
+
* `loading`, which means "wait"; this means "not from here". Pair it with
|
|
34
|
+
* {@link ForgotPasswordFormProps.notice} — a disabled button with no
|
|
35
|
+
* explanation is the exact thing `Empty States.dc.html` forbids.
|
|
37
36
|
*/
|
|
38
37
|
disabled?: boolean | undefined;
|
|
39
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgotPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth-screens/ForgotPasswordForm.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAWzE,wDAAwD;AACxD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACvF,MAAM,EAAE,wBAAwB,CAAC;IACjC,mEAAmE;IACnE,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACrD,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B
|
|
1
|
+
{"version":3,"file":"ForgotPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth-screens/ForgotPasswordForm.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAWzE,wDAAwD;AACxD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACvF,MAAM,EAAE,wBAAwB,CAAC;IACjC,mEAAmE;IACnE,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACrD,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAe,EACf,QAAgB,EAChB,MAAM,EACN,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAsEzB;AAED,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7D,wCAAwC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACpC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,+BAqBtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgotPasswordForm.js","sourceRoot":"","sources":["../../../src/components/auth-screens/ForgotPasswordForm.tsx"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ForgotPasswordForm.js","sourceRoot":"","sources":["../../../src/components/auth-screens/ForgotPasswordForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ComponentPropsWithRef } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* The autosave phases. `dirty` is the annex's "Unsaved changes" pill
|
|
4
|
-
* (research/widget-registry.md
|
|
4
|
+
* (research/widget-registry.md `autosave-indicator`: warn dot "Unsaved
|
|
5
5
|
* changes" → spinner "Saving…" → green check "All changes saved"), shown while
|
|
6
6
|
* edits sit inside the host's debounce window. `idle` remains the no-edits-yet
|
|
7
7
|
* phase and still renders nothing.
|
|
@@ -21,7 +21,7 @@ export interface AutosaveIndicatorProps extends ComponentPropsWithRef<'div'> {
|
|
|
21
21
|
/**
|
|
22
22
|
* AutosaveIndicator — "Unsaved changes / Saving… / All changes saved" pill with
|
|
23
23
|
* a fade transition between states, announced politely via `aria-live`
|
|
24
|
-
* (research/design-system.md
|
|
24
|
+
* (research/design-system.md Tier 3). `idle` renders an empty live region
|
|
25
25
|
* (layout kept stable).
|
|
26
26
|
*/
|
|
27
27
|
export declare function AutosaveIndicator({ status, savingLabel, savedLabel, dirtyLabel, errorLabel, className, ...props }: AutosaveIndicatorProps): import("react").JSX.Element;
|
|
@@ -6,7 +6,7 @@ import { Spinner } from '../spinner/Spinner.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* AutosaveIndicator — "Unsaved changes / Saving… / All changes saved" pill with
|
|
8
8
|
* a fade transition between states, announced politely via `aria-live`
|
|
9
|
-
* (research/design-system.md
|
|
9
|
+
* (research/design-system.md Tier 3). `idle` renders an empty live region
|
|
10
10
|
* (layout kept stable).
|
|
11
11
|
*/
|
|
12
12
|
export function AutosaveIndicator({ status, savingLabel, savedLabel, dirtyLabel, errorLabel, className, ...props }) {
|
|
@@ -2,9 +2,9 @@ import { type VariantProps } from 'class-variance-authority';
|
|
|
2
2
|
import { type ComponentPropsWithRef } from 'react';
|
|
3
3
|
import type { Tone } from '../icon-tile/index.js';
|
|
4
4
|
/**
|
|
5
|
-
* The 5 fixed deterministic avatar gradients (research/design-system.md
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* The 5 fixed deterministic avatar gradients (research/design-system.md Tier
|
|
6
|
+
* 1). The hash below is FROZEN — changing it re-colors every avatar in every
|
|
7
|
+
* install (major-version change).
|
|
8
8
|
*/
|
|
9
9
|
export declare const AVATAR_GRADIENTS: readonly [readonly ["#6366f1", "#a855f7"], readonly ["#f59e0b", "#ef4444"], readonly ["#10b981", "#0d9488"], readonly ["#06b6d4", "#3b82f6"], readonly ["#8b5cf6", "#ec4899"]];
|
|
10
10
|
/**
|
|
@@ -17,7 +17,7 @@ export declare const avatarGradientClasses: readonly ["bg-[linear-gradient(135de
|
|
|
17
17
|
export declare function avatarGradientIndex(initials: string): number;
|
|
18
18
|
/**
|
|
19
19
|
* Initials = first grapheme of the first + last word of `name`, uppercased
|
|
20
|
-
* via `toLocaleUpperCase(locale)
|
|
20
|
+
* via `toLocaleUpperCase(locale)`.
|
|
21
21
|
*/
|
|
22
22
|
export declare function getInitials(name: string, locale?: string): string;
|
|
23
23
|
export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
@@ -42,7 +42,7 @@ export interface AvatarProps extends Omit<ComponentPropsWithRef<'span'>, 'childr
|
|
|
42
42
|
/**
|
|
43
43
|
* Avatar — initials over 1 of 5 fixed deterministic gradients, or an image
|
|
44
44
|
* with initials fallback; circle / rounded-square shapes; sizes 18–92px;
|
|
45
|
-
* optional presence dot (research/design-system.md
|
|
45
|
+
* optional presence dot (research/design-system.md Tier 1).
|
|
46
46
|
*/
|
|
47
47
|
export declare function Avatar({ name, src, locale, label, presence, size, shape, className, ...props }: AvatarProps): import("react").JSX.Element;
|
|
48
48
|
//# sourceMappingURL=Avatar.d.ts.map
|
|
@@ -4,9 +4,9 @@ import { cva } from 'class-variance-authority';
|
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { cn } from '../../lib/cn.js';
|
|
6
6
|
/**
|
|
7
|
-
* The 5 fixed deterministic avatar gradients (research/design-system.md
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* The 5 fixed deterministic avatar gradients (research/design-system.md Tier
|
|
8
|
+
* 1). The hash below is FROZEN — changing it re-colors every avatar in every
|
|
9
|
+
* install (major-version change).
|
|
10
10
|
*/
|
|
11
11
|
export const AVATAR_GRADIENTS = [
|
|
12
12
|
['#6366f1', '#a855f7'],
|
|
@@ -37,7 +37,7 @@ export function avatarGradientIndex(initials) {
|
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Initials = first grapheme of the first + last word of `name`, uppercased
|
|
40
|
-
* via `toLocaleUpperCase(locale)
|
|
40
|
+
* via `toLocaleUpperCase(locale)`.
|
|
41
41
|
*/
|
|
42
42
|
export function getInitials(name, locale) {
|
|
43
43
|
const words = name.trim().split(/\s+/).filter(Boolean);
|
|
@@ -92,7 +92,7 @@ const presenceToneBg = {
|
|
|
92
92
|
/**
|
|
93
93
|
* Avatar — initials over 1 of 5 fixed deterministic gradients, or an image
|
|
94
94
|
* with initials fallback; circle / rounded-square shapes; sizes 18–92px;
|
|
95
|
-
* optional presence dot (research/design-system.md
|
|
95
|
+
* optional presence dot (research/design-system.md Tier 1).
|
|
96
96
|
*/
|
|
97
97
|
export function Avatar({ name, src, locale, label, presence, size, shape, className, ...props }) {
|
|
98
98
|
const [imageFailed, setImageFailed] = useState(false);
|
|
@@ -15,7 +15,7 @@ export interface AvatarStackProps extends ComponentPropsWithRef<'div'> {
|
|
|
15
15
|
/**
|
|
16
16
|
* AvatarStack — overlapping avatar row: −8px overlap via the logical `-ms-2`
|
|
17
17
|
* negative margin, 2px `--surface` ring on every item, and a `+N` overflow
|
|
18
|
-
* chip past `max` (research/design-system.md
|
|
18
|
+
* chip past `max` (research/design-system.md Tier 1).
|
|
19
19
|
*/
|
|
20
20
|
export declare function AvatarStack({ children, max, size, label, overflowLabel, className, ...props }: AvatarStackProps): import("react").JSX.Element;
|
|
21
21
|
//# sourceMappingURL=AvatarStack.d.ts.map
|
|
@@ -6,7 +6,7 @@ import { avatarSizeClasses } from '../avatar/index.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* AvatarStack — overlapping avatar row: −8px overlap via the logical `-ms-2`
|
|
8
8
|
* negative margin, 2px `--surface` ring on every item, and a `+N` overflow
|
|
9
|
-
* chip past `max` (research/design-system.md
|
|
9
|
+
* chip past `max` (research/design-system.md Tier 1).
|
|
10
10
|
*/
|
|
11
11
|
export function AvatarStack({ children, max, size = 'md', label, overflowLabel = (n) => `+${n}`, className, ...props }) {
|
|
12
12
|
const items = Children.toArray(children);
|
|
@@ -3,7 +3,7 @@ import type * as React from 'react';
|
|
|
3
3
|
export type { Tone } from '../../lib/tones.js';
|
|
4
4
|
/**
|
|
5
5
|
* Pill badge: radius-full, 11px/700, soft tone background + strong tone
|
|
6
|
-
* foreground (research/design-system.md
|
|
6
|
+
* foreground (research/design-system.md Tier 1). The tone→class map is the
|
|
7
7
|
* shared `toneSoftClasses` recipe — one source of truth for every soft tint.
|
|
8
8
|
*/
|
|
9
9
|
export declare const badgeVariants: (props?: ({
|
|
@@ -6,7 +6,7 @@ import { cn } from '../../lib/cn.js';
|
|
|
6
6
|
import { toneSoftClasses } from '../../lib/tones.js';
|
|
7
7
|
/**
|
|
8
8
|
* Pill badge: radius-full, 11px/700, soft tone background + strong tone
|
|
9
|
-
* foreground (research/design-system.md
|
|
9
|
+
* foreground (research/design-system.md Tier 1). The tone→class map is the
|
|
10
10
|
* shared `toneSoftClasses` recipe — one source of truth for every soft tint.
|
|
11
11
|
*/
|
|
12
12
|
export const badgeVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded-full px-2 py-0.5 text-[11px] font-bold leading-4', {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
export { Badge, badgeVariants } from './Badge.js';
|
|
3
3
|
// NB: the `Tone` union is intentionally NOT re-exported here — consumers get
|
|
4
4
|
// it from the barrel via components/icon-tile. Both re-export the SAME
|
|
5
|
-
// declaration from lib/tones.ts (its single home
|
|
6
|
-
//
|
|
5
|
+
// declaration from lib/tones.ts (its single home); keeping one barrel path
|
|
6
|
+
// avoids duplicate `export *` surface.
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElD,6EAA6E;AAC7E,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElD,6EAA6E;AAC7E,uEAAuE;AACvE,2EAA2E;AAC3E,uCAAuC"}
|
|
@@ -15,7 +15,7 @@ export interface BannerProps extends ComponentPropsWithRef<'div'> {
|
|
|
15
15
|
/**
|
|
16
16
|
* Banner — full-width top alert variant: tone-soft strip with a `color-mix`
|
|
17
17
|
* bottom hairline, icon + message + optional action, dismissible
|
|
18
|
-
* (research/design-system.md
|
|
18
|
+
* (research/design-system.md Tier 3). Mount above the app shell.
|
|
19
19
|
*/
|
|
20
20
|
export declare function Banner({ tone, icon, action, onDismiss, dismissLabel, className, children, ...props }: BannerProps): import("react").JSX.Element;
|
|
21
21
|
//# sourceMappingURL=Banner.d.ts.map
|
|
@@ -17,7 +17,7 @@ const defaultIcons = {
|
|
|
17
17
|
/**
|
|
18
18
|
* Banner — full-width top alert variant: tone-soft strip with a `color-mix`
|
|
19
19
|
* bottom hairline, icon + message + optional action, dismissible
|
|
20
|
-
* (research/design-system.md
|
|
20
|
+
* (research/design-system.md Tier 3). Mount above the app shell.
|
|
21
21
|
*/
|
|
22
22
|
export function Banner({ tone = 'info', icon, action, onDismiss, dismissLabel, className, children, ...props }) {
|
|
23
23
|
return (_jsxs("div", { "data-tone": tone, className: cn('flex w-full items-center gap-2.5 border-b px-4 py-2.5', toneClasses[tone], className), ...props, children: [_jsx("span", { "data-part": "banner-icon", "aria-hidden": "true", className: "shrink-0 [&_svg]:size-4 [&_svg]:stroke-2", children: icon ?? defaultIcons[tone] }), _jsx("div", { className: "min-w-0 flex-1 text-body-sm font-semibold text-fg", children: children }), action === undefined || action === null ? null : _jsx("div", { className: "shrink-0", children: action }), onDismiss === undefined ? null : (_jsx("button", { type: "button", "aria-label": dismissLabel, onClick: onDismiss, className: cn('nb-ib -me-1 inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted', 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent'), children: _jsx(X, { className: "size-3.5", "aria-hidden": "true" }) }))] }));
|
|
@@ -16,7 +16,7 @@ export interface BreadcrumbsProps extends Omit<ComponentPropsWithRef<'nav'>, 'ch
|
|
|
16
16
|
/**
|
|
17
17
|
* Breadcrumbs — links + chevron separators (RTL-mirrored), optional mono
|
|
18
18
|
* segments, `nav > ol` semantics with `aria-current="page"` on the last item
|
|
19
|
-
* (research/design-system.md
|
|
19
|
+
* (research/design-system.md Tier 3).
|
|
20
20
|
*/
|
|
21
21
|
export declare function Breadcrumbs({ items, label, className, ...props }: BreadcrumbsProps): import("react").JSX.Element;
|
|
22
22
|
//# sourceMappingURL=Breadcrumbs.d.ts.map
|
|
@@ -7,7 +7,7 @@ import { MonoText } from '../mono-text/MonoText.js';
|
|
|
7
7
|
/**
|
|
8
8
|
* Breadcrumbs — links + chevron separators (RTL-mirrored), optional mono
|
|
9
9
|
* segments, `nav > ol` semantics with `aria-current="page"` on the last item
|
|
10
|
-
* (research/design-system.md
|
|
10
|
+
* (research/design-system.md Tier 3).
|
|
11
11
|
*/
|
|
12
12
|
export function Breadcrumbs({ items, label, className, ...props }) {
|
|
13
13
|
return (_jsx("nav", { "aria-label": label, className: cn('min-w-0', className), ...props, children: _jsx("ol", { className: "flex min-w-0 items-center gap-1.5 text-body-sm", children: items.map((item, index) => {
|
|
@@ -20,8 +20,8 @@ export interface BulkActionBarProps extends ComponentPropsWithRef<'div'> {
|
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* BulkActionBar — the selection bar shown while rows are checked: mono count +
|
|
23
|
-
* actions + clear, appearing via `nb-fade` (research/design-system.md
|
|
24
|
-
*
|
|
23
|
+
* actions + clear, appearing via `nb-fade` (research/design-system.md Tier 3).
|
|
24
|
+
* Two treatments, chosen by `floating`:
|
|
25
25
|
*
|
|
26
26
|
* - `floating` (default): the dark `--fg` slab pinned bottom-centre over the
|
|
27
27
|
* page. It reads as an overlay because it *is* one.
|
|
@@ -13,8 +13,8 @@ import { MonoText } from '../mono-text/MonoText.js';
|
|
|
13
13
|
const BulkActionFloatingContext = createContext(true);
|
|
14
14
|
/**
|
|
15
15
|
* BulkActionBar — the selection bar shown while rows are checked: mono count +
|
|
16
|
-
* actions + clear, appearing via `nb-fade` (research/design-system.md
|
|
17
|
-
*
|
|
16
|
+
* actions + clear, appearing via `nb-fade` (research/design-system.md Tier 3).
|
|
17
|
+
* Two treatments, chosen by `floating`:
|
|
18
18
|
*
|
|
19
19
|
* - `floating` (default): the dark `--fg` slab pinned bottom-centre over the
|
|
20
20
|
* page. It reads as an overlay because it *is* one.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import type * as React from 'react';
|
|
3
3
|
/**
|
|
4
|
-
* Button CVA map
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Button CVA map and research/design-system.md Tier 1. `size` is declared
|
|
5
|
+
* before `variant` so the `link` variant's `h-auto p-0` wins the
|
|
6
|
+
* tailwind-merge conflict.
|
|
7
7
|
*/
|
|
8
8
|
export declare const buttonVariants: (props?: ({
|
|
9
9
|
size?: "sm" | "md" | "lg" | "topbar" | null | undefined;
|
|
@@ -5,9 +5,9 @@ import { cva } from 'class-variance-authority';
|
|
|
5
5
|
import { cn } from '../../lib/cn.js';
|
|
6
6
|
import { Spinner } from '../spinner/Spinner.js';
|
|
7
7
|
/**
|
|
8
|
-
* Button CVA map
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Button CVA map and research/design-system.md Tier 1. `size` is declared
|
|
9
|
+
* before `variant` so the `link` variant's `h-auto p-0` wins the
|
|
10
|
+
* tailwind-merge conflict.
|
|
11
11
|
*/
|
|
12
12
|
export const buttonVariants = cva('nb-press inline-flex select-none items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-semibold ' +
|
|
13
13
|
'transition-[background-color,color,box-shadow] duration-150 ' +
|
|
@@ -13,7 +13,7 @@ export interface CardProps extends ComponentPropsWithRef<'div'>, VariantProps<ty
|
|
|
13
13
|
/**
|
|
14
14
|
* Card — surface container: `--surface` bg, 1px `--border`, radius 14,
|
|
15
15
|
* `--shadow` (shadow-card), density padding via `--card-pad`
|
|
16
|
-
* (research/design-system.md
|
|
16
|
+
* (research/design-system.md Tier 3).
|
|
17
17
|
*/
|
|
18
18
|
export declare function Card({ asChild, hoverable, raise, selected, padded, className, ...props }: CardProps): import("react").JSX.Element;
|
|
19
19
|
export type CardHeaderProps = ComponentPropsWithRef<'div'>;
|
|
@@ -27,7 +27,7 @@ export const cardVariants = cva('rounded-lg border border-border bg-surface shad
|
|
|
27
27
|
/**
|
|
28
28
|
* Card — surface container: `--surface` bg, 1px `--border`, radius 14,
|
|
29
29
|
* `--shadow` (shadow-card), density padding via `--card-pad`
|
|
30
|
-
* (research/design-system.md
|
|
30
|
+
* (research/design-system.md Tier 3).
|
|
31
31
|
*/
|
|
32
32
|
export function Card({ asChild, hoverable, raise, selected, padded, className, ...props }) {
|
|
33
33
|
const Comp = asChild ? Slot : 'div';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ComponentPropsWithRef, type ReactNode } from 'react';
|
|
2
|
+
export interface CheckRowProps extends Omit<ComponentPropsWithRef<'div'>, 'style' | 'onChange'> {
|
|
3
|
+
/** The thing being turned on: 13 / 700 with a detail, 13 / 600 without. */
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
/** The second line (comp 405) — what this one grants, in plain words. */
|
|
6
|
+
detail?: ReactNode | undefined;
|
|
7
|
+
/** Trailing mono text (comp 498): a scope, a code, a count. */
|
|
8
|
+
scope?: ReactNode | undefined;
|
|
9
|
+
checked?: boolean | undefined;
|
|
10
|
+
onCheckedChange?: ((checked: boolean) => void) | undefined;
|
|
11
|
+
disabled?: boolean | undefined;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* CheckRow — a bordered, tinted row with a box, a label and a detail or a mono
|
|
15
|
+
* scope (comp 402–407, 494–500).
|
|
16
|
+
*
|
|
17
|
+
* ─── What it is for, and what it is not ────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* Two shapes in the comp, one control: "provision these systems on day one"
|
|
20
|
+
* (label + detail) and a permission list (label + a mono scope at the end). It
|
|
21
|
+
* is a CHOICE MADE VISIBLE — the whole row is the target, the selected state
|
|
22
|
+
* is a tinted border rather than a tick you have to look for, and the detail
|
|
23
|
+
* has somewhere to live.
|
|
24
|
+
*
|
|
25
|
+
* It is never the default for anything: a boolean gets a `ToggleRow` and a list
|
|
26
|
+
* gets chips. A check row is what an admin CHOOSES when the options deserve a
|
|
27
|
+
* sentence each (Appendix C).
|
|
28
|
+
*
|
|
29
|
+
* The row is a real `checkbox` role with `aria-checked`, driven by Space as
|
|
30
|
+
* well as by a click, because that is what a person reaching it by keyboard
|
|
31
|
+
* expects — and a div with an onClick is not reachable at all.
|
|
32
|
+
*/
|
|
33
|
+
export declare function CheckRow({ label, detail, scope, checked, onCheckedChange, disabled, className, ...props }: CheckRowProps): import("react").JSX.Element;
|
|
34
|
+
//# sourceMappingURL=CheckRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckRow.d.ts","sourceRoot":"","sources":["../../../src/components/check-row/CheckRow.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1E,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC7F,2EAA2E;IAC3E,KAAK,EAAE,SAAS,CAAC;IACjB,yEAAyE;IACzE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAM,EACN,KAAK,EACL,OAAe,EACf,eAAe,EACf,QAAgB,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,+BA8Df"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
import { Check } from 'lucide-react';
|
|
4
|
+
import { useId } from 'react';
|
|
5
|
+
import { cn } from '../../lib/cn.js';
|
|
6
|
+
import { MonoText } from '../mono-text/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* CheckRow — a bordered, tinted row with a box, a label and a detail or a mono
|
|
9
|
+
* scope (comp 402–407, 494–500).
|
|
10
|
+
*
|
|
11
|
+
* ─── What it is for, and what it is not ────────────────────────────────────
|
|
12
|
+
*
|
|
13
|
+
* Two shapes in the comp, one control: "provision these systems on day one"
|
|
14
|
+
* (label + detail) and a permission list (label + a mono scope at the end). It
|
|
15
|
+
* is a CHOICE MADE VISIBLE — the whole row is the target, the selected state
|
|
16
|
+
* is a tinted border rather than a tick you have to look for, and the detail
|
|
17
|
+
* has somewhere to live.
|
|
18
|
+
*
|
|
19
|
+
* It is never the default for anything: a boolean gets a `ToggleRow` and a list
|
|
20
|
+
* gets chips. A check row is what an admin CHOOSES when the options deserve a
|
|
21
|
+
* sentence each (Appendix C).
|
|
22
|
+
*
|
|
23
|
+
* The row is a real `checkbox` role with `aria-checked`, driven by Space as
|
|
24
|
+
* well as by a click, because that is what a person reaching it by keyboard
|
|
25
|
+
* expects — and a div with an onClick is not reachable at all.
|
|
26
|
+
*/
|
|
27
|
+
export function CheckRow({ label, detail, scope, checked = false, onCheckedChange, disabled = false, className, ...props }) {
|
|
28
|
+
const id = useId();
|
|
29
|
+
const descriptionId = detail === undefined || detail === null ? undefined : `${id}-detail`;
|
|
30
|
+
const toggle = () => {
|
|
31
|
+
if (disabled)
|
|
32
|
+
return;
|
|
33
|
+
onCheckedChange?.(!checked);
|
|
34
|
+
};
|
|
35
|
+
return (_jsxs("div", { role: "checkbox", "aria-checked": checked, ...(descriptionId === undefined ? {} : { 'aria-describedby': descriptionId }), ...(disabled ? { 'aria-disabled': true } : { tabIndex: 0 }), onClick: toggle, onKeyDown: (event) => {
|
|
36
|
+
// Space is the checkbox key; Enter is not, and browsers do not send a
|
|
37
|
+
// click for either on a div — so both are wired by hand.
|
|
38
|
+
if (event.key === ' ' || event.key === 'Enter') {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
toggle();
|
|
41
|
+
}
|
|
42
|
+
}, className: cn('flex cursor-pointer items-center gap-[11px] rounded-[11px] border px-3.5 py-2.5', 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent', checked ? 'border-accent bg-accent-soft' : 'border-border bg-surface',
|
|
43
|
+
// `pointer-events-none`, but NOT an opacity: dimming 11.5px type is
|
|
44
|
+
// what failed `ToggleRow`'s description in the axe sweep, and this row
|
|
45
|
+
// escapes the same rule only because `aria-disabled` makes axe skip it.
|
|
46
|
+
disabled && 'pointer-events-none cursor-not-allowed', className), ...props, children: [_jsx("span", { "aria-hidden": "true", className: cn(
|
|
47
|
+
// `text-accent-fg`, never a literal white: the box's background is a
|
|
48
|
+
// token that follows the theme and a literal foreground does not — the
|
|
49
|
+
// pair loses contrast the moment the theme flips (the lint rule
|
|
50
|
+
// measures it).
|
|
51
|
+
'flex size-[18px] shrink-0 items-center justify-center rounded-[5px] text-accent-fg', checked ? 'bg-accent' : 'border-[1.5px] border-border-strong'), children: _jsx(Check, { className: cn('size-3', checked ? 'opacity-100' : 'opacity-0') }) }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: cn('block text-body-sm text-fg', detail === undefined ? 'font-semibold' : 'font-bold'), children: label }), descriptionId === undefined ? null : (_jsx("span", { id: descriptionId, className: "block text-[11.5px] leading-4 text-fg-subtle", children: detail }))] }), scope === undefined || scope === null ? null : (_jsx(MonoText, { className: "shrink-0 text-[11px] text-fg-subtle", children: scope }))] }));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=CheckRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckRow.js","sourceRoot":"","sources":["../../../src/components/check-row/CheckRow.tsx"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAA8C,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAcjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,MAAM,EACN,KAAK,EACL,OAAO,GAAG,KAAK,EACf,eAAe,EACf,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,GAAG,KAAK,EACM;IACd,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,aAAa,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC;IAC3F,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,IAAI,QAAQ;YAAE,OAAO;QACrB,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,OAAO,CACL,eACE,IAAI,EAAC,UAAU,kBACD,OAAO,KACjB,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC,KAC1E,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAC5D,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,sEAAsE;YACtE,yDAAyD;YACzD,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC,EACD,SAAS,EAAE,EAAE,CACX,iFAAiF,EACjF,qFAAqF,EACrF,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,0BAA0B;QACrE,oEAAoE;QACpE,uEAAuE;QACvE,wEAAwE;QACxE,QAAQ,IAAI,wCAAwC,EACpD,SAAS,CACV,KACG,KAAK,aAET,8BACc,MAAM,EAClB,SAAS,EAAE,EAAE;gBACX,qEAAqE;gBACrE,uEAAuE;gBACvE,gEAAgE;gBAChE,gBAAgB;gBAChB,oFAAoF,EACpF,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,qCAAqC,CAC9D,YAED,KAAC,KAAK,IAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,GAAI,GACpE,EACP,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,eAAM,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,YACpG,KAAK,GACD,EACN,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpC,eAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,8CAA8C,YAC9E,MAAM,GACF,CACR,IACI,EACN,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9C,KAAC,QAAQ,IAAC,SAAS,EAAC,qCAAqC,YAAE,KAAK,GAAY,CAC7E,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/check-row/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/check-row/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -4,7 +4,7 @@ export type CheckboxProps = Omit<React.ComponentPropsWithRef<typeof CheckboxPrim
|
|
|
4
4
|
/**
|
|
5
5
|
* Checkbox — Radix checkbox, 18px square, radius 6 (`rounded-sm`), accent
|
|
6
6
|
* fill + white check when checked, `Minus` glyph when `indeterminate`
|
|
7
|
-
* (research/design-system.md
|
|
7
|
+
* (research/design-system.md Tier 2).
|
|
8
8
|
*
|
|
9
9
|
* Indeterminate is the Radix contract: pass `checked="indeterminate"`
|
|
10
10
|
* (controlled). Label + caption wiring belongs to `FormField` / `Label`.
|
|
@@ -6,7 +6,7 @@ import { cn } from '../../lib/cn.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* Checkbox — Radix checkbox, 18px square, radius 6 (`rounded-sm`), accent
|
|
8
8
|
* fill + white check when checked, `Minus` glyph when `indeterminate`
|
|
9
|
-
* (research/design-system.md
|
|
9
|
+
* (research/design-system.md Tier 2).
|
|
10
10
|
*
|
|
11
11
|
* Indeterminate is the Radix contract: pass `checked="indeterminate"`
|
|
12
12
|
* (controlled). Label + caption wiring belongs to `FormField` / `Label`.
|
|
@@ -14,6 +14,13 @@ export interface ChipInputProps extends Omit<React.ComponentPropsWithRef<'input'
|
|
|
14
14
|
validate?: ((chip: string) => boolean) | undefined;
|
|
15
15
|
/** Accessible name for each chip's ✕ button, built per chip (i18n-friendly). */
|
|
16
16
|
removeLabel: (chip: string) => string;
|
|
17
|
+
/**
|
|
18
|
+
* The chips' tint. The comp draws both: accent for a short, meaningful set
|
|
19
|
+
* (tags, 254) and neutral for a long one the person is assembling (invite
|
|
20
|
+
* addresses, 486). Accent on fifty chips is a wall of colour; neutral on
|
|
21
|
+
* three is a list nobody reads as choices.
|
|
22
|
+
*/
|
|
23
|
+
tone?: 'accent' | 'neutral' | undefined;
|
|
17
24
|
/** Force the danger state from outside (form-level validation). */
|
|
18
25
|
error?: boolean | undefined;
|
|
19
26
|
/** Extra classes for the inline `<input>` (className styles the wrapper). */
|
|
@@ -21,9 +28,9 @@ export interface ChipInputProps extends Omit<React.ComponentPropsWithRef<'input'
|
|
|
21
28
|
}
|
|
22
29
|
/**
|
|
23
30
|
* ChipInput (MultiSelect/TagInput) — removable chips + inline text input
|
|
24
|
-
* (research/design-system.md
|
|
31
|
+
* (research/design-system.md Tier 2). Enter or `,` commits the pending
|
|
25
32
|
* text, paste splits on commas/whitespace, Backspace on an empty input
|
|
26
33
|
* removes the last chip, duplicates are ignored.
|
|
27
34
|
*/
|
|
28
|
-
export declare function ChipInput({ className, inputClassName, value, defaultValue, onValueChange, validate, removeLabel, error, disabled, ref, onKeyDown, onPaste, onBlur, ...inputProps }: ChipInputProps): React.JSX.Element;
|
|
35
|
+
export declare function ChipInput({ className, inputClassName, value, defaultValue, onValueChange, validate, removeLabel, tone, error, disabled, ref, onKeyDown, onPaste, onBlur, ...inputProps }: ChipInputProps): React.JSX.Element;
|
|
29
36
|
//# sourceMappingURL=ChipInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipInput.d.ts","sourceRoot":"","sources":["../../../src/components/chip-input/ChipInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAQpC,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EACpC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAClE;IACD,4BAA4B;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,sCAAsC;IACtC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7C,sDAAsD;IACtD,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,gFAAgF;IAChF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,cAAc,EACd,KAAK,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,KAAa,EACb,QAAQ,EACR,GAAG,EACH,SAAS,EACT,OAAO,EACP,MAAM,EACN,GAAG,UAAU,EACd,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"ChipInput.d.ts","sourceRoot":"","sources":["../../../src/components/chip-input/ChipInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAQpC,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EACpC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAClE;IACD,4BAA4B;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,sCAAsC;IACtC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7C,sDAAsD;IACtD,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,gFAAgF;IAChF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,cAAc,EACd,KAAK,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,IAAgB,EAChB,KAAa,EACb,QAAQ,EACR,GAAG,EACH,SAAS,EACT,OAAO,EACP,MAAM,EACN,GAAG,UAAU,EACd,EAAE,cAAc,qBA4HhB"}
|
|
@@ -7,11 +7,11 @@ import { Tag } from '../tag/index.js';
|
|
|
7
7
|
const SPLIT_RE = /[,\s]+/;
|
|
8
8
|
/**
|
|
9
9
|
* ChipInput (MultiSelect/TagInput) — removable chips + inline text input
|
|
10
|
-
* (research/design-system.md
|
|
10
|
+
* (research/design-system.md Tier 2). Enter or `,` commits the pending
|
|
11
11
|
* text, paste splits on commas/whitespace, Backspace on an empty input
|
|
12
12
|
* removes the last chip, duplicates are ignored.
|
|
13
13
|
*/
|
|
14
|
-
export function ChipInput({ className, inputClassName, value, defaultValue, onValueChange, validate, removeLabel, error = false, disabled, ref, onKeyDown, onPaste, onBlur, ...inputProps }) {
|
|
14
|
+
export function ChipInput({ className, inputClassName, value, defaultValue, onValueChange, validate, removeLabel, tone = 'neutral', error = false, disabled, ref, onKeyDown, onPaste, onBlur, ...inputProps }) {
|
|
15
15
|
const innerRef = useRef(null);
|
|
16
16
|
const [internal, setInternal] = useState(defaultValue ?? []);
|
|
17
17
|
const [text, setText] = useState('');
|
|
@@ -92,7 +92,7 @@ export function ChipInput({ className, inputClassName, value, defaultValue, onVa
|
|
|
92
92
|
// disabled state of their own, so nothing (axe included) could tell.
|
|
93
93
|
// `aria-disabled` on the wrapper below states it once, for the whole
|
|
94
94
|
// composite, which is also what a screen reader needed.
|
|
95
|
-
'has-[input:disabled]:pointer-events-none has-[input:disabled]:opacity-40', 'data-[invalid]:border-danger data-[invalid]:focus-within:ring-danger-soft', className), ...(disabled ? { 'aria-disabled': true } : {}), children: [chips.map((chip) => (_jsx(Tag, { mono: true, onRemove: () => commitChips(chips.filter((existing) => existing !== chip)), removeLabel: removeLabel(chip), children: chip }, chip))), _jsx("input", { ref: setRef, type: "text", value: text, disabled: disabled, ...(invalid ? { 'aria-invalid': true } : {}), onChange: (event) => {
|
|
95
|
+
'has-[input:disabled]:pointer-events-none has-[input:disabled]:opacity-40', 'data-[invalid]:border-danger data-[invalid]:focus-within:ring-danger-soft', className), ...(disabled ? { 'aria-disabled': true } : {}), children: [chips.map((chip) => (_jsx(Tag, { mono: true, ...(tone === 'accent' ? { tone: 'accent' } : {}), onRemove: () => commitChips(chips.filter((existing) => existing !== chip)), removeLabel: removeLabel(chip), children: chip }, chip))), _jsx("input", { ref: setRef, type: "text", value: text, disabled: disabled, ...(invalid ? { 'aria-invalid': true } : {}), onChange: (event) => {
|
|
96
96
|
setText(event.target.value);
|
|
97
97
|
setRejected(false);
|
|
98
98
|
}, onKeyDown: handleKeyDown, onPaste: handlePaste, onBlur: (event) => {
|