@kismet-ux/constellation 1.7.0 → 1.8.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/form/Input/input.css +32 -0
- package/dist/form/Input/input.d.ts +17 -0
- package/dist/form/Input/input.d.ts.map +1 -1
- package/dist/form/Input/input.js +20 -2
- package/dist/form/Input/input.js.map +1 -1
- package/dist/form/Input/input.module.scss.js +1 -1
- package/dist/form.d.ts +2 -2
- package/dist/{index-K2b259WI.d.ts → index-BSSQnlm_.d.ts} +2 -2
- package/dist/{index-IHzHSsCh.d.ts → index-CkQ6wNCc.d.ts} +11 -11
- package/dist/{index-Bexoc2w4.d.ts → index-ibcvWtdH.d.ts} +2 -2
- package/dist/index.d.ts +7 -7
- package/dist/{input-CWHXOpeH.d.ts → input-Cp5LET5i.d.ts} +17 -0
- package/dist/layout.d.ts +3 -3
- package/dist/navigation.d.ts +1 -1
- package/dist/{tooltip-CYRWWtkq.d.ts → tooltip-XagXjWLB.d.ts} +1 -1
- package/dist/ui/Button/button-variants.d.ts +1 -1
- package/dist/ui/Icon/icon-variants.d.ts +1 -1
- package/dist/ui/Toggle/toggle-variants.d.ts +1 -1
- package/dist/ui.d.ts +2 -2
- package/package.json +1 -1
|
@@ -46,6 +46,30 @@
|
|
|
46
46
|
transition: border-color 0.3s ease, box-shadow 0.3s ease;
|
|
47
47
|
width: 100%;
|
|
48
48
|
}
|
|
49
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc .input-module_ghost-wrap__pHzia {
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-grow: 1;
|
|
52
|
+
min-width: 0;
|
|
53
|
+
position: relative;
|
|
54
|
+
}
|
|
55
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc {
|
|
56
|
+
/*
|
|
57
|
+
* Shares the field's box exactly: same font (inherited), `inset: 0` on a
|
|
58
|
+
* wrapper that IS the field's box, and `white-space: pre` so runs of
|
|
59
|
+
* spaces in the tail are not collapsed away and the offset stays true.
|
|
60
|
+
*/
|
|
61
|
+
}
|
|
62
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc .input-module_ghost__yVtI- {
|
|
63
|
+
color: var(--text-disabled);
|
|
64
|
+
inset: 0;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
position: absolute;
|
|
68
|
+
white-space: pre;
|
|
69
|
+
}
|
|
70
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc .input-module_ghost-typed__r9NZN {
|
|
71
|
+
visibility: hidden;
|
|
72
|
+
}
|
|
49
73
|
.input-module_container__bycn1 .input-module_input-container__nw0Oc input,
|
|
50
74
|
.input-module_container__bycn1 .input-module_input-container__nw0Oc textarea {
|
|
51
75
|
background: none;
|
|
@@ -55,6 +79,14 @@
|
|
|
55
79
|
font-size: inherit;
|
|
56
80
|
min-width: 0;
|
|
57
81
|
outline: none !important;
|
|
82
|
+
}
|
|
83
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc input--ghosted,
|
|
84
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc textarea--ghosted {
|
|
85
|
+
background: transparent;
|
|
86
|
+
position: relative;
|
|
87
|
+
}
|
|
88
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc input,
|
|
89
|
+
.input-module_container__bycn1 .input-module_input-container__nw0Oc textarea {
|
|
58
90
|
overflow: hidden;
|
|
59
91
|
padding: 0;
|
|
60
92
|
text-overflow: ellipsis;
|
|
@@ -8,6 +8,23 @@ export interface InputBaseProps {
|
|
|
8
8
|
helperText?: string;
|
|
9
9
|
startAdornment?: React.ReactNode;
|
|
10
10
|
endAdornment?: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Inline completion drawn behind the caret — the TAIL only, not the whole
|
|
13
|
+
* word. `value='Avo'` with `ghost='cado'` reads as "Avocado", the suggestion
|
|
14
|
+
* dimmed.
|
|
15
|
+
*
|
|
16
|
+
* The component owns the alignment; you own the policy. What to suggest and
|
|
17
|
+
* which key accepts it are decisions about your data and your users (a phone
|
|
18
|
+
* has a spacebar under the thumb and no Tab), so they stay with the caller.
|
|
19
|
+
* Accept by setting `value` to the completed string in your own `onKeyDown`.
|
|
20
|
+
*
|
|
21
|
+
* Pass `''` (not `undefined`) for "nothing to suggest right now": the
|
|
22
|
+
* element structure stays stable, so the field is never remounted mid-word.
|
|
23
|
+
*
|
|
24
|
+
* Ignored for `type='textarea'` — a ghost cannot follow a caret across
|
|
25
|
+
* wrapped lines without measuring, which is a different component.
|
|
26
|
+
*/
|
|
27
|
+
ghost?: string;
|
|
11
28
|
}
|
|
12
29
|
type InputFieldProps = InputBaseProps & React.InputHTMLAttributes<HTMLInputElement> & {
|
|
13
30
|
type?: Exclude<InputType, 'textarea'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/form/Input/input.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC,KAAK,SAAS,GAAG,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/form/Input/input.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC,KAAK,SAAS,GAAG,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,eAAe,GAAG,cAAc,GACnC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEJ,KAAK,aAAa,GAAG,cAAc,GACjC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,GAAG;IAClD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGJ,KAAK,UAAU,GAAG,eAAe,GAAG,aAAa,CAAC;AAGlD,QAAA,MAAM,KAAK,2GAgKV,CAAC;AAIF,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
package/dist/form/Input/input.js
CHANGED
|
@@ -7,7 +7,7 @@ import * as React from 'react';
|
|
|
7
7
|
import inputStyles from './input.module.scss.js';
|
|
8
8
|
|
|
9
9
|
// The Custom Input Component
|
|
10
|
-
const Input = React.forwardRef(({ label, sizeVariant, error = false, helperText, startAdornment, endAdornment, id, type = 'text', rows, onFocus, onBlur, ...rest }, ref) => {
|
|
10
|
+
const Input = React.forwardRef(({ label, sizeVariant, error = false, helperText, startAdornment, endAdornment, id, type = 'text', rows, ghost, onFocus, onBlur, ...rest }, ref) => {
|
|
11
11
|
const { isBelow } = useBreakpoint();
|
|
12
12
|
/*
|
|
13
13
|
* Compose rather than let the caller's handler win.
|
|
@@ -32,7 +32,25 @@ const Input = React.forwardRef(({ label, sizeVariant, error = false, helperText,
|
|
|
32
32
|
const isTextArea = type === 'textarea';
|
|
33
33
|
const [isFocused, setIsFocused] = React.useState(false);
|
|
34
34
|
const containerClasses = cn(inputStyles.container, inputStyles[resolvedSize], { [inputStyles.error]: error }, { [inputStyles.disabled]: rest.disabled }, { [inputStyles.placeholder]: rest.placeholder }, { [inputStyles['is-focused']]: isFocused }, { [inputStyles['has-value']]: rest.value });
|
|
35
|
-
return (jsxs("div", { "data-slot": 'input', "data-constellation-field": true, className: containerClasses, children: [jsxs("div", { className: cn(inputStyles['input-container'], isTextArea && inputStyles['textarea-container']), children: [startAdornment && (jsx("span", { "data-slot": 'input-start-adornment', className: inputStyles['adornment'], children: startAdornment })), jsx("div", { className: inputStyles['label-container'], children: jsxs(Label, { htmlFor: inputId, children: [label, (rest['aria-required'] || rest.required) && jsx("span", { className: inputStyles.required, children: "*" })] }) }), isTextArea ? (jsx("textarea", { "data-slot": 'input-field', id: inputId, className: inputStyles['input-field'], "aria-invalid": error ? 'true' : undefined, "aria-describedby": helperId, onFocus: handleFocus, onBlur: handleBlur, ref: ref, rows: rows, ...rest })) :
|
|
35
|
+
return (jsxs("div", { "data-slot": 'input', "data-constellation-field": true, className: containerClasses, children: [jsxs("div", { className: cn(inputStyles['input-container'], isTextArea && inputStyles['textarea-container']), children: [startAdornment && (jsx("span", { "data-slot": 'input-start-adornment', className: inputStyles['adornment'], children: startAdornment })), jsx("div", { className: inputStyles['label-container'], children: jsxs(Label, { htmlFor: inputId, children: [label, (rest['aria-required'] || rest.required) && jsx("span", { className: inputStyles.required, children: "*" })] }) }), isTextArea ? (jsx("textarea", { "data-slot": 'input-field', id: inputId, className: inputStyles['input-field'], "aria-invalid": error ? 'true' : undefined, "aria-describedby": helperId, onFocus: handleFocus, onBlur: handleBlur, ref: ref, rows: rows, ...rest })) : ghost !== undefined ? (
|
|
36
|
+
/*
|
|
37
|
+
* The ghost is drawn by re-rendering the typed value INVISIBLY and
|
|
38
|
+
* letting the suggestion follow it, so the two share one text flow
|
|
39
|
+
* and the ghost lands exactly where the caret is — no measuring, and
|
|
40
|
+
* nothing to drift when the font or padding changes.
|
|
41
|
+
*
|
|
42
|
+
* The wrapper exists so `inset: 0` means the input's box rather than
|
|
43
|
+
* the container's, which would be off by the padding and by any
|
|
44
|
+
* start adornment.
|
|
45
|
+
*
|
|
46
|
+
* Branching on `ghost !== undefined` rather than on the string being
|
|
47
|
+
* non-empty is load-bearing: a suggestion appears and disappears as
|
|
48
|
+
* you type, and switching JSX shape underneath a live field makes
|
|
49
|
+
* React unmount and remount the input — which drops focus, the
|
|
50
|
+
* caret and any IME composition mid-word. Pass `ghost=''` for "no
|
|
51
|
+
* suggestion right now" and the element stays put.
|
|
52
|
+
*/
|
|
53
|
+
jsxs("span", { className: inputStyles['ghost-wrap'], children: [ghost ? (jsxs("span", { "aria-hidden": 'true', className: inputStyles['ghost'], children: [jsx("span", { className: inputStyles['ghost-typed'], children: String(rest.value ?? '') }), ghost] })) : null, jsx("input", { "data-slot": 'input-field', id: inputId, className: cn(inputStyles['input-field'], ghost && inputStyles['input-field--ghosted']), "aria-invalid": error ? 'true' : undefined, "aria-describedby": helperId, "aria-autocomplete": 'inline', onFocus: handleFocus, onBlur: handleBlur, ref: ref, type: type, ...rest })] })) : (jsx("input", { "data-slot": 'input-field', id: inputId, className: inputStyles['input-field'], "aria-invalid": error ? 'true' : undefined, "aria-describedby": helperId, onFocus: handleFocus, onBlur: handleBlur, ref: ref, type: type, ...rest })), endAdornment && (jsx("span", { "data-slot": 'input-end-adornment', className: inputStyles['adornment'], children: endAdornment }))] }), helperText && (jsx(Typography, { "data-slot": 'input-helper-text', id: helperId, variant: 'caption', className: inputStyles['helper-text'], children: helperText }))] }));
|
|
36
54
|
});
|
|
37
55
|
Input.displayName = 'Input';
|
|
38
56
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sources":["../../../src/form/Input/input.tsx"],"sourcesContent":["import { Label } from '@constellation/form/Label';\nimport { useBreakpoint } from '@constellation/hooks/use-mobile';\nimport { Typography } from '@constellation/typography/Typography';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport s from './input.module.scss';\n\n// Define the possible size variants\ntype InputSize = 'sm' | 'md' | 'lg';\n\ntype InputType = React.InputHTMLAttributes<HTMLInputElement>['type'] | 'textarea';\n\nexport interface InputBaseProps {\n label?: string;\n sizeVariant?: InputSize;\n error?: boolean;\n helperText?: string;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n}\n\ntype InputFieldProps = InputBaseProps &\n React.InputHTMLAttributes<HTMLInputElement> & {\n type?: Exclude<InputType, 'textarea'>;\n rows?: never;\n };\n\ntype TextAreaProps = InputBaseProps &\n React.TextareaHTMLAttributes<HTMLTextAreaElement> & {\n type: 'textarea';\n rows?: number;\n };\n\n// Define the component's prop interface\ntype InputProps = InputFieldProps | TextAreaProps;\n\n// The Custom Input Component\nconst Input = React.forwardRef<HTMLInputElement | HTMLTextAreaElement, InputProps>(\n (\n {\n label,\n sizeVariant,\n error = false,\n helperText,\n startAdornment,\n endAdornment,\n id,\n type = 'text',\n rows,\n onFocus,\n onBlur,\n ...rest\n },\n ref,\n ) => {\n const { isBelow } = useBreakpoint();\n\n /*\n * Compose rather than let the caller's handler win.\n *\n * These used to be set before `{...rest}` spread over them, so any consumer\n * passing `onFocus` — to select-all on entry, say — silently replaced the\n * one driving the floating label, and the label stopped animating with no\n * error to point at it.\n */\n const handleFocus = (event: React.FocusEvent<HTMLInputElement & HTMLTextAreaElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n };\n const handleBlur = (event: React.FocusEvent<HTMLInputElement & HTMLTextAreaElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n };\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n const helperId = helperText ? `${inputId}-helper` : undefined;\n const resolvedSize =\n sizeVariant === 'md' && isBelow(900) ? 'sm' : (sizeVariant ?? (isBelow(900) ? 'sm' : 'md'));\n const isTextArea = type === 'textarea';\n const [isFocused, setIsFocused] = React.useState(false);\n\n const containerClasses = cn(\n s.container,\n s[resolvedSize],\n { [s.error]: error },\n { [s.disabled]: rest.disabled },\n { [s.placeholder]: rest.placeholder },\n { [s['is-focused']]: isFocused },\n { [s['has-value']]: rest.value },\n );\n\n return (\n <div data-slot={'input'} data-constellation-field className={containerClasses}>\n <div className={cn(s['input-container'], isTextArea && s['textarea-container'])}>\n {/* Start Adornment */}\n {startAdornment && (\n <span data-slot={'input-start-adornment'} className={s['adornment']}>\n {startAdornment}\n </span>\n )}\n\n <div className={s['label-container']}>\n <Label htmlFor={inputId}>\n {label}\n {(rest['aria-required'] || rest.required) && <span className={s.required}>*</span>}\n </Label>\n </div>\n {isTextArea ? (\n <textarea\n data-slot={'input-field'}\n id={inputId}\n className={s['input-field']}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={helperId}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={ref as React.Ref<HTMLTextAreaElement>}\n rows={rows}\n {...(rest as React.TextareaHTMLAttributes<HTMLTextAreaElement>)}\n />\n ) : (\n <input\n data-slot={'input-field'}\n id={inputId}\n className={s['input-field']}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={helperId}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={ref as React.Ref<HTMLInputElement>}\n type={type}\n {...(rest as React.InputHTMLAttributes<HTMLInputElement>)}\n />\n )}\n\n {/* End Adornment */}\n {endAdornment && (\n <span data-slot={'input-end-adornment'} className={s['adornment']}>\n {endAdornment}\n </span>\n )}\n </div>\n\n {/* Helper Text */}\n {helperText && (\n <Typography\n data-slot={'input-helper-text'}\n id={helperId}\n variant={'caption'}\n className={s['helper-text']}\n >\n {helperText}\n </Typography>\n )}\n </div>\n );\n },\n);\n\nInput.displayName = 'Input';\n\nexport { Input };\n"],"names":["s","_jsxs","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input.js","sources":["../../../src/form/Input/input.tsx"],"sourcesContent":["import { Label } from '@constellation/form/Label';\nimport { useBreakpoint } from '@constellation/hooks/use-mobile';\nimport { Typography } from '@constellation/typography/Typography';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport s from './input.module.scss';\n\n// Define the possible size variants\ntype InputSize = 'sm' | 'md' | 'lg';\n\ntype InputType = React.InputHTMLAttributes<HTMLInputElement>['type'] | 'textarea';\n\nexport interface InputBaseProps {\n label?: string;\n sizeVariant?: InputSize;\n error?: boolean;\n helperText?: string;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n /**\n * Inline completion drawn behind the caret — the TAIL only, not the whole\n * word. `value='Avo'` with `ghost='cado'` reads as \"Avocado\", the suggestion\n * dimmed.\n *\n * The component owns the alignment; you own the policy. What to suggest and\n * which key accepts it are decisions about your data and your users (a phone\n * has a spacebar under the thumb and no Tab), so they stay with the caller.\n * Accept by setting `value` to the completed string in your own `onKeyDown`.\n *\n * Pass `''` (not `undefined`) for \"nothing to suggest right now\": the\n * element structure stays stable, so the field is never remounted mid-word.\n *\n * Ignored for `type='textarea'` — a ghost cannot follow a caret across\n * wrapped lines without measuring, which is a different component.\n */\n ghost?: string;\n}\n\ntype InputFieldProps = InputBaseProps &\n React.InputHTMLAttributes<HTMLInputElement> & {\n type?: Exclude<InputType, 'textarea'>;\n rows?: never;\n };\n\ntype TextAreaProps = InputBaseProps &\n React.TextareaHTMLAttributes<HTMLTextAreaElement> & {\n type: 'textarea';\n rows?: number;\n };\n\n// Define the component's prop interface\ntype InputProps = InputFieldProps | TextAreaProps;\n\n// The Custom Input Component\nconst Input = React.forwardRef<HTMLInputElement | HTMLTextAreaElement, InputProps>(\n (\n {\n label,\n sizeVariant,\n error = false,\n helperText,\n startAdornment,\n endAdornment,\n id,\n type = 'text',\n rows,\n ghost,\n onFocus,\n onBlur,\n ...rest\n },\n ref,\n ) => {\n const { isBelow } = useBreakpoint();\n\n /*\n * Compose rather than let the caller's handler win.\n *\n * These used to be set before `{...rest}` spread over them, so any consumer\n * passing `onFocus` — to select-all on entry, say — silently replaced the\n * one driving the floating label, and the label stopped animating with no\n * error to point at it.\n */\n const handleFocus = (event: React.FocusEvent<HTMLInputElement & HTMLTextAreaElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n };\n const handleBlur = (event: React.FocusEvent<HTMLInputElement & HTMLTextAreaElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n };\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n const helperId = helperText ? `${inputId}-helper` : undefined;\n const resolvedSize =\n sizeVariant === 'md' && isBelow(900) ? 'sm' : (sizeVariant ?? (isBelow(900) ? 'sm' : 'md'));\n const isTextArea = type === 'textarea';\n const [isFocused, setIsFocused] = React.useState(false);\n\n const containerClasses = cn(\n s.container,\n s[resolvedSize],\n { [s.error]: error },\n { [s.disabled]: rest.disabled },\n { [s.placeholder]: rest.placeholder },\n { [s['is-focused']]: isFocused },\n { [s['has-value']]: rest.value },\n );\n\n return (\n <div data-slot={'input'} data-constellation-field className={containerClasses}>\n <div className={cn(s['input-container'], isTextArea && s['textarea-container'])}>\n {/* Start Adornment */}\n {startAdornment && (\n <span data-slot={'input-start-adornment'} className={s['adornment']}>\n {startAdornment}\n </span>\n )}\n\n <div className={s['label-container']}>\n <Label htmlFor={inputId}>\n {label}\n {(rest['aria-required'] || rest.required) && <span className={s.required}>*</span>}\n </Label>\n </div>\n {isTextArea ? (\n <textarea\n data-slot={'input-field'}\n id={inputId}\n className={s['input-field']}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={helperId}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={ref as React.Ref<HTMLTextAreaElement>}\n rows={rows}\n {...(rest as React.TextareaHTMLAttributes<HTMLTextAreaElement>)}\n />\n ) : ghost !== undefined ? (\n /*\n * The ghost is drawn by re-rendering the typed value INVISIBLY and\n * letting the suggestion follow it, so the two share one text flow\n * and the ghost lands exactly where the caret is — no measuring, and\n * nothing to drift when the font or padding changes.\n *\n * The wrapper exists so `inset: 0` means the input's box rather than\n * the container's, which would be off by the padding and by any\n * start adornment.\n *\n * Branching on `ghost !== undefined` rather than on the string being\n * non-empty is load-bearing: a suggestion appears and disappears as\n * you type, and switching JSX shape underneath a live field makes\n * React unmount and remount the input — which drops focus, the\n * caret and any IME composition mid-word. Pass `ghost=''` for \"no\n * suggestion right now\" and the element stays put.\n */\n <span className={s['ghost-wrap']}>\n {ghost ? (\n <span aria-hidden={'true'} className={s['ghost']}>\n <span className={s['ghost-typed']}>{String(rest.value ?? '')}</span>\n {ghost}\n </span>\n ) : null}\n <input\n data-slot={'input-field'}\n id={inputId}\n className={cn(s['input-field'], ghost && s['input-field--ghosted'])}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={helperId}\n aria-autocomplete={'inline'}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={ref as React.Ref<HTMLInputElement>}\n type={type}\n {...(rest as React.InputHTMLAttributes<HTMLInputElement>)}\n />\n </span>\n ) : (\n <input\n data-slot={'input-field'}\n id={inputId}\n className={s['input-field']}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={helperId}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={ref as React.Ref<HTMLInputElement>}\n type={type}\n {...(rest as React.InputHTMLAttributes<HTMLInputElement>)}\n />\n )}\n\n {/* End Adornment */}\n {endAdornment && (\n <span data-slot={'input-end-adornment'} className={s['adornment']}>\n {endAdornment}\n </span>\n )}\n </div>\n\n {/* Helper Text */}\n {helperText && (\n <Typography\n data-slot={'input-helper-text'}\n id={helperId}\n variant={'caption'}\n className={s['helper-text']}\n >\n {helperText}\n </Typography>\n )}\n </div>\n );\n },\n);\n\nInput.displayName = 'Input';\n\nexport { Input };\n"],"names":["s","_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './input.css';
|
|
2
2
|
|
|
3
|
-
var inputStyles = {"container":"input-module_container__bycn1","label-container":"input-module_label-container__SngtG","required":"input-module_required__J1bMP","input-container":"input-module_input-container__nw0Oc","adornment":"input-module_adornment__cO4v1","textarea-container":"input-module_textarea-container__cc9-3","helper-text":"input-module_helper-text__DvzFI","is-focused":"input-module_is-focused__08nzj","error":"input-module_error__ftn_q","disabled":"input-module_disabled__9RjjE","sm":"input-module_sm__AtYYB","placeholder":"input-module_placeholder__I29pr","has-value":"input-module_has-value__juKDe","md":"input-module_md__nPnVp","lg":"input-module_lg__dC2Tp"};
|
|
3
|
+
var inputStyles = {"container":"input-module_container__bycn1","label-container":"input-module_label-container__SngtG","required":"input-module_required__J1bMP","input-container":"input-module_input-container__nw0Oc","ghost-wrap":"input-module_ghost-wrap__pHzia","ghost":"input-module_ghost__yVtI-","ghost-typed":"input-module_ghost-typed__r9NZN","adornment":"input-module_adornment__cO4v1","textarea-container":"input-module_textarea-container__cc9-3","helper-text":"input-module_helper-text__DvzFI","is-focused":"input-module_is-focused__08nzj","error":"input-module_error__ftn_q","disabled":"input-module_disabled__9RjjE","sm":"input-module_sm__AtYYB","placeholder":"input-module_placeholder__I29pr","has-value":"input-module_has-value__juKDe","md":"input-module_md__nPnVp","lg":"input-module_lg__dC2Tp"};
|
|
4
4
|
|
|
5
5
|
export { inputStyles as default };
|
|
6
6
|
//# sourceMappingURL=input.module.scss.js.map
|
package/dist/form.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { C as Checkbox, a as CheckboxProps, D as DatePicker, L as Label, c as LabelProps, S as Select, e as SelectContent, g as SelectField, i as SelectGroup, j as SelectItem, m as SelectSeparator, o as SelectTrigger, p as SelectValue } from './index-
|
|
2
|
-
export { I as Input, a as InputBaseProps } from './input-
|
|
1
|
+
export { C as Checkbox, a as CheckboxProps, D as DatePicker, L as Label, c as LabelProps, S as Select, e as SelectContent, g as SelectField, i as SelectGroup, j as SelectItem, m as SelectSeparator, o as SelectTrigger, p as SelectValue } from './index-ibcvWtdH.js';
|
|
2
|
+
export { I as Input, a as InputBaseProps } from './input-Cp5LET5i.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'class-variance-authority';
|
|
5
5
|
import 'class-variance-authority/types';
|
|
@@ -2,8 +2,8 @@ import * as React from 'react';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { d as SidebarSection, S as SidebarNavItem, B as BreadcrumbItemData, c as NavUserProps } from './nav-user-CJIcWKyY.js';
|
|
4
4
|
import { R as RowProps } from './row-CS9-talZ.js';
|
|
5
|
-
import { I as Input } from './input-
|
|
6
|
-
import { b as TooltipContent, B as Button } from './tooltip-
|
|
5
|
+
import { I as Input } from './input-Cp5LET5i.js';
|
|
6
|
+
import { b as TooltipContent, B as Button } from './tooltip-XagXjWLB.js';
|
|
7
7
|
import { VariantProps } from 'class-variance-authority';
|
|
8
8
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
9
9
|
|
|
@@ -2,7 +2,7 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { ReactNode } from 'react';
|
|
4
4
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
5
|
-
import './tooltip-
|
|
5
|
+
import './tooltip-XagXjWLB.js';
|
|
6
6
|
import { e as TypographyVariant } from './typography-DOZHFR5A.js';
|
|
7
7
|
|
|
8
8
|
type AlertTheme = 'default' | 'primary' | 'secondary' | 'success' | 'destructive' | 'warning' | 'info' | 'slate';
|
|
@@ -45,7 +45,7 @@ type SortContextValue = {
|
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
declare const alertVariants: (props?: ({
|
|
48
|
-
theme?: "default" | "primary" | "secondary" | "
|
|
48
|
+
theme?: "default" | "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | null | undefined;
|
|
49
49
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
50
50
|
|
|
51
51
|
interface AlertProps extends VariantProps<typeof alertVariants> {
|
|
@@ -85,7 +85,7 @@ type AvatarFallbackProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
|
85
85
|
declare const AvatarFallback: React.ForwardRefExoticComponent<AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
86
86
|
|
|
87
87
|
declare const chipVariants: (props?: ({
|
|
88
|
-
theme?: "
|
|
88
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
89
89
|
variant?: "soft" | "outline" | "solid" | null | undefined;
|
|
90
90
|
size?: "2xs" | "xs" | "sm" | "md" | null | undefined;
|
|
91
91
|
shape?: "pill" | "rounded" | null | undefined;
|
|
@@ -114,7 +114,7 @@ interface ChipProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<
|
|
|
114
114
|
declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLSpanElement>>;
|
|
115
115
|
|
|
116
116
|
declare const codeBlockVariants: (props?: ({
|
|
117
|
-
theme?: "default" | "primary" | "secondary" | "
|
|
117
|
+
theme?: "default" | "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | null | undefined;
|
|
118
118
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
119
119
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
120
120
|
|
|
@@ -187,7 +187,7 @@ declare function DialogPortal({ children }: {
|
|
|
187
187
|
}): React.JSX.Element;
|
|
188
188
|
|
|
189
189
|
declare const emptyStateVariants: (props?: ({
|
|
190
|
-
theme?: "default" | "primary" | "secondary" | "
|
|
190
|
+
theme?: "default" | "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | null | undefined;
|
|
191
191
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
192
192
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
193
193
|
|
|
@@ -205,7 +205,7 @@ declare const EmptyState: React.ForwardRefExoticComponent<EmptyStateProps & Reac
|
|
|
205
205
|
|
|
206
206
|
declare const iconVariants: (props?: ({
|
|
207
207
|
variant?: "contained" | "outlined" | "ghost" | "plain" | null | undefined;
|
|
208
|
-
theme?: "
|
|
208
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
209
209
|
size?: "xs" | "sm" | "md" | "lg" | null | undefined;
|
|
210
210
|
rounded?: boolean | "extra" | null | undefined;
|
|
211
211
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
@@ -265,7 +265,7 @@ declare const ListItem: React.ForwardRefExoticComponent<ListItemProps & React.Re
|
|
|
265
265
|
declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
|
|
266
266
|
|
|
267
267
|
declare const progressBarVariants: (props?: ({
|
|
268
|
-
theme?: "
|
|
268
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
269
269
|
size?: "xs" | "sm" | "md" | "lg" | null | undefined;
|
|
270
270
|
rounded?: boolean | null | undefined;
|
|
271
271
|
animated?: boolean | null | undefined;
|
|
@@ -317,7 +317,7 @@ interface StatCardProps extends React.ComponentPropsWithoutRef<'div'> {
|
|
|
317
317
|
declare const StatCard: React.ForwardRefExoticComponent<StatCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
318
318
|
|
|
319
319
|
declare const statusDotVariants: (props?: ({
|
|
320
|
-
theme?: "
|
|
320
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
321
321
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
322
322
|
glow?: boolean | null | undefined;
|
|
323
323
|
pulse?: boolean | null | undefined;
|
|
@@ -343,7 +343,7 @@ interface StatusDotProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'co
|
|
|
343
343
|
declare const StatusDot: React.ForwardRefExoticComponent<StatusDotProps & React.RefAttributes<HTMLSpanElement>>;
|
|
344
344
|
|
|
345
345
|
declare const stepProgressVariants: (props?: ({
|
|
346
|
-
theme?: "
|
|
346
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
347
347
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
348
348
|
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
349
349
|
stretch?: boolean | null | undefined;
|
|
@@ -366,7 +366,7 @@ interface StepProgressProps extends Omit<React.HTMLAttributes<HTMLOListElement>,
|
|
|
366
366
|
declare const StepProgress: React.ForwardRefExoticComponent<StepProgressProps & React.RefAttributes<HTMLOListElement>>;
|
|
367
367
|
|
|
368
368
|
declare const switchVariants: (props?: ({
|
|
369
|
-
theme?: "
|
|
369
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
370
370
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
371
371
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
372
372
|
|
|
@@ -460,7 +460,7 @@ declare const TableToolbar: React.ForwardRefExoticComponent<TableToolbarProps &
|
|
|
460
460
|
|
|
461
461
|
declare const toggleVariants: (props?: ({
|
|
462
462
|
variant?: "contained" | "outlined" | "ghost" | null | undefined;
|
|
463
|
-
theme?: "
|
|
463
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
464
464
|
size?: "xs" | "sm" | "md" | "lg" | null | undefined;
|
|
465
465
|
iconOnly?: boolean | null | undefined;
|
|
466
466
|
rounded?: boolean | "extra" | null | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
|
-
import './input-
|
|
3
|
+
import './input-Cp5LET5i.js';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
6
6
|
|
|
@@ -95,7 +95,7 @@ declare function DatePicker({ value: valueProp, defaultValue, onChange, label, h
|
|
|
95
95
|
|
|
96
96
|
declare const labelVariants: (props?: ({
|
|
97
97
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
98
|
-
theme?: "
|
|
98
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
99
99
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
100
100
|
|
|
101
101
|
interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement>, VariantProps<typeof labelVariants> {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { Logo, LogoProps } from './brand.js';
|
|
2
|
-
export { C as Checkbox, a as CheckboxProps, D as DatePicker, b as DatePickerProps, F as FormTheme, L as Label, c as LabelProps, S as Select, d as SelectAlign, e as SelectContent, f as SelectContentProps, g as SelectField, h as SelectFieldProps, i as SelectGroup, j as SelectItem, k as SelectPosition, l as SelectProps, m as SelectSeparator, n as SelectSide, o as SelectTrigger, p as SelectValue } from './index-
|
|
3
|
-
export { I as Input, a as InputBaseProps } from './input-
|
|
4
|
-
import { S as SidebarContextValue } from './index-
|
|
5
|
-
export { A as AppContent, a as AppFooter, b as AppFooterProps, c as AppShell, d as AppShellProps, e as AppSidebar, f as AppSidebarHeader, g as AppSidebarHeaderProps, h as AppSidebarProps, C as Collapse, i as CollapseProps, j as Column, k as ColumnProps, l as Container, m as ContainerProps, G as Grid, n as GridColumns, o as GridProps, R as Row, p as Sidebar, q as SidebarContent, r as SidebarFooter, s as SidebarGroup, t as SidebarGroupAction, u as SidebarGroupContent, v as SidebarGroupLabel, w as SidebarHeader, x as SidebarInput, y as SidebarInset, z as SidebarMenu, B as SidebarMenuAction, D as SidebarMenuBadge, E as SidebarMenuButton, F as SidebarMenuItem, H as SidebarMenuSkeleton, I as SidebarMenuSub, J as SidebarMenuSubButton, K as SidebarMenuSubItem, L as SidebarProvider, M as SidebarRail, N as SidebarTrigger, O as SidebarVariant, P as Skeleton } from './index-
|
|
6
|
-
import { A as AlertContextValue, S as SortState } from './index-
|
|
7
|
-
export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, e as AlertMessage, f as AlertProps, g as AlertProvider, h as AlertTheme, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as CodeBlock, r as CodeBlockProps, D as DevIndicator, s as DevIndicatorProps, t as Dialog, u as DialogClose, v as DialogCloseProps, w as DialogContent, x as DialogContentProps, y as DialogDescription, z as DialogFooter, B as DialogHeader, E as DialogOverlay, F as DialogPortal, G as DialogProps, H as DialogTitle, I as DialogTrigger, J as DialogTriggerProps, K as EmptyState, L as EmptyStateProps, M as Icon, N as IconProps, O as List, P as ListItem, Q as ListItemProps, R as ListProps, T as Pagination, U as PaginationProps, V as ProgressBar, W as ProgressBarProps, X as PushAlertInput, Y as Separator, Z as SeparatorProps, _ as SortContextValue, $ as SortDirection, a0 as StatCard, a1 as StatCardDirection, a2 as StatCardProps, a3 as StatCardSize, a4 as StatCardTheme, a5 as StatCardVariant, a6 as StatusDot, a7 as StatusDotProps, a8 as Step, a9 as StepProgress, aa as StepProgressProps, ab as Switch, ac as SwitchProps, ad as Table, ae as TableActionCell, af as TableActionCellProps, ag as TableActionItem, ah as TableBody, ai as TableBodyProps, aj as TableCard, ak as TableCell, al as TableFooter, am as TableHead, an as TableHeader, ao as TableRow, ap as TableSortableHeader, aq as TableSortableHeaderProps, ar as TableToolbar, as as TableToolbarProps, at as Toggle, au as ToggleGroup, av as ToggleGroupProps, aw as ToggleProps, ax as TrendDirection, ay as persistAlert, az as statusDotVariants } from './index-
|
|
2
|
+
export { C as Checkbox, a as CheckboxProps, D as DatePicker, b as DatePickerProps, F as FormTheme, L as Label, c as LabelProps, S as Select, d as SelectAlign, e as SelectContent, f as SelectContentProps, g as SelectField, h as SelectFieldProps, i as SelectGroup, j as SelectItem, k as SelectPosition, l as SelectProps, m as SelectSeparator, n as SelectSide, o as SelectTrigger, p as SelectValue } from './index-ibcvWtdH.js';
|
|
3
|
+
export { I as Input, a as InputBaseProps } from './input-Cp5LET5i.js';
|
|
4
|
+
import { S as SidebarContextValue } from './index-BSSQnlm_.js';
|
|
5
|
+
export { A as AppContent, a as AppFooter, b as AppFooterProps, c as AppShell, d as AppShellProps, e as AppSidebar, f as AppSidebarHeader, g as AppSidebarHeaderProps, h as AppSidebarProps, C as Collapse, i as CollapseProps, j as Column, k as ColumnProps, l as Container, m as ContainerProps, G as Grid, n as GridColumns, o as GridProps, R as Row, p as Sidebar, q as SidebarContent, r as SidebarFooter, s as SidebarGroup, t as SidebarGroupAction, u as SidebarGroupContent, v as SidebarGroupLabel, w as SidebarHeader, x as SidebarInput, y as SidebarInset, z as SidebarMenu, B as SidebarMenuAction, D as SidebarMenuBadge, E as SidebarMenuButton, F as SidebarMenuItem, H as SidebarMenuSkeleton, I as SidebarMenuSub, J as SidebarMenuSubButton, K as SidebarMenuSubItem, L as SidebarProvider, M as SidebarRail, N as SidebarTrigger, O as SidebarVariant, P as Skeleton } from './index-BSSQnlm_.js';
|
|
6
|
+
import { A as AlertContextValue, S as SortState } from './index-CkQ6wNCc.js';
|
|
7
|
+
export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, e as AlertMessage, f as AlertProps, g as AlertProvider, h as AlertTheme, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as CodeBlock, r as CodeBlockProps, D as DevIndicator, s as DevIndicatorProps, t as Dialog, u as DialogClose, v as DialogCloseProps, w as DialogContent, x as DialogContentProps, y as DialogDescription, z as DialogFooter, B as DialogHeader, E as DialogOverlay, F as DialogPortal, G as DialogProps, H as DialogTitle, I as DialogTrigger, J as DialogTriggerProps, K as EmptyState, L as EmptyStateProps, M as Icon, N as IconProps, O as List, P as ListItem, Q as ListItemProps, R as ListProps, T as Pagination, U as PaginationProps, V as ProgressBar, W as ProgressBarProps, X as PushAlertInput, Y as Separator, Z as SeparatorProps, _ as SortContextValue, $ as SortDirection, a0 as StatCard, a1 as StatCardDirection, a2 as StatCardProps, a3 as StatCardSize, a4 as StatCardTheme, a5 as StatCardVariant, a6 as StatusDot, a7 as StatusDotProps, a8 as Step, a9 as StepProgress, aa as StepProgressProps, ab as Switch, ac as SwitchProps, ad as Table, ae as TableActionCell, af as TableActionCellProps, ag as TableActionItem, ah as TableBody, ai as TableBodyProps, aj as TableCard, ak as TableCell, al as TableFooter, am as TableHead, an as TableHeader, ao as TableRow, ap as TableSortableHeader, aq as TableSortableHeaderProps, ar as TableToolbar, as as TableToolbarProps, at as Toggle, au as ToggleGroup, av as ToggleGroupProps, aw as ToggleProps, ax as TrendDirection, ay as persistAlert, az as statusDotVariants } from './index-CkQ6wNCc.js';
|
|
8
8
|
export { R as RowProps } from './row-CS9-talZ.js';
|
|
9
9
|
export { Breadcrumbs, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuProps, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DropdownMenuTriggerProps, Link, LinkProps, RouterAdapter, RouterProvider, Sheet, SheetBody, SheetClose, SheetCloseProps, SheetContent, SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetProps, SheetTitle, SheetTrigger, SheetTriggerProps, useRouterAdapter } from './navigation.js';
|
|
10
10
|
export { B as BreadcrumbItemData, N as NavGroup, a as NavItem, b as NavUser, c as NavUserProps, S as SidebarNavItem, d as SidebarSection } from './nav-user-CJIcWKyY.js';
|
|
@@ -12,7 +12,7 @@ export { AppearanceTabs, AppearanceToggleDropdown } from './settings.js';
|
|
|
12
12
|
export { a as User, b as UserMenuContent, U as UserMenuContentProps, c as UserMenuItem } from './user-menu-content-D0Ldzigm.js';
|
|
13
13
|
export { Heading, TruncatedText, TruncatedTextProps } from './typography.js';
|
|
14
14
|
export { T as Typography, a as TypographyAlign, b as TypographyProps, c as TypographyTheme, d as TypographyTransform, e as TypographyVariant, f as TypographyWeight } from './typography-DOZHFR5A.js';
|
|
15
|
-
export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-
|
|
15
|
+
export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-XagXjWLB.js';
|
|
16
16
|
export { UserInfo } from './user.js';
|
|
17
17
|
export { getCsrfToken } from './utils.js';
|
|
18
18
|
import 'react';
|
|
@@ -9,6 +9,23 @@ interface InputBaseProps {
|
|
|
9
9
|
helperText?: string;
|
|
10
10
|
startAdornment?: React.ReactNode;
|
|
11
11
|
endAdornment?: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Inline completion drawn behind the caret — the TAIL only, not the whole
|
|
14
|
+
* word. `value='Avo'` with `ghost='cado'` reads as "Avocado", the suggestion
|
|
15
|
+
* dimmed.
|
|
16
|
+
*
|
|
17
|
+
* The component owns the alignment; you own the policy. What to suggest and
|
|
18
|
+
* which key accepts it are decisions about your data and your users (a phone
|
|
19
|
+
* has a spacebar under the thumb and no Tab), so they stay with the caller.
|
|
20
|
+
* Accept by setting `value` to the completed string in your own `onKeyDown`.
|
|
21
|
+
*
|
|
22
|
+
* Pass `''` (not `undefined`) for "nothing to suggest right now": the
|
|
23
|
+
* element structure stays stable, so the field is never remounted mid-word.
|
|
24
|
+
*
|
|
25
|
+
* Ignored for `type='textarea'` — a ghost cannot follow a caret across
|
|
26
|
+
* wrapped lines without measuring, which is a different component.
|
|
27
|
+
*/
|
|
28
|
+
ghost?: string;
|
|
12
29
|
}
|
|
13
30
|
type InputFieldProps = InputBaseProps & React.InputHTMLAttributes<HTMLInputElement> & {
|
|
14
31
|
type?: Exclude<InputType, 'textarea'>;
|
package/dist/layout.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { A as AppContent, a as AppFooter, b as AppFooterProps, c as AppShell, d as AppShellProps, e as AppSidebar, f as AppSidebarHeader, g as AppSidebarHeaderProps, h as AppSidebarProps, C as Collapse, i as CollapseProps, j as Column, k as ColumnProps, l as Container, G as Grid, R as Row, p as Sidebar, q as SidebarContent, r as SidebarFooter, s as SidebarGroup, t as SidebarGroupAction, u as SidebarGroupContent, v as SidebarGroupLabel, w as SidebarHeader, x as SidebarInput, y as SidebarInset, z as SidebarMenu, B as SidebarMenuAction, D as SidebarMenuBadge, E as SidebarMenuButton, F as SidebarMenuItem, H as SidebarMenuSkeleton, I as SidebarMenuSub, J as SidebarMenuSubButton, K as SidebarMenuSubItem, L as SidebarProvider, M as SidebarRail, N as SidebarTrigger, P as Skeleton } from './index-
|
|
1
|
+
export { A as AppContent, a as AppFooter, b as AppFooterProps, c as AppShell, d as AppShellProps, e as AppSidebar, f as AppSidebarHeader, g as AppSidebarHeaderProps, h as AppSidebarProps, C as Collapse, i as CollapseProps, j as Column, k as ColumnProps, l as Container, G as Grid, R as Row, p as Sidebar, q as SidebarContent, r as SidebarFooter, s as SidebarGroup, t as SidebarGroupAction, u as SidebarGroupContent, v as SidebarGroupLabel, w as SidebarHeader, x as SidebarInput, y as SidebarInset, z as SidebarMenu, B as SidebarMenuAction, D as SidebarMenuBadge, E as SidebarMenuButton, F as SidebarMenuItem, H as SidebarMenuSkeleton, I as SidebarMenuSub, J as SidebarMenuSubButton, K as SidebarMenuSubItem, L as SidebarProvider, M as SidebarRail, N as SidebarTrigger, P as Skeleton } from './index-BSSQnlm_.js';
|
|
2
2
|
export { R as RowProps } from './row-CS9-talZ.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import './nav-user-CJIcWKyY.js';
|
|
5
5
|
import 'lucide-react';
|
|
6
6
|
import './user-menu-content-D0Ldzigm.js';
|
|
7
|
-
import './input-
|
|
8
|
-
import './tooltip-
|
|
7
|
+
import './input-Cp5LET5i.js';
|
|
8
|
+
import './tooltip-XagXjWLB.js';
|
|
9
9
|
import 'class-variance-authority';
|
|
10
10
|
import 'class-variance-authority/types';
|
package/dist/navigation.d.ts
CHANGED
|
@@ -62,7 +62,7 @@ declare function DropdownMenuSubContent({ className, ...props }: React.HTMLAttri
|
|
|
62
62
|
declare const linkVariants: (props?: ({
|
|
63
63
|
underline?: boolean | null | undefined;
|
|
64
64
|
hover?: "default" | "none" | null | undefined;
|
|
65
|
-
theme?: "
|
|
65
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
66
66
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
67
67
|
|
|
68
68
|
interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'>, VariantProps<typeof linkVariants> {
|
|
@@ -4,7 +4,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
|
|
|
4
4
|
|
|
5
5
|
declare const buttonVariants: (props?: ({
|
|
6
6
|
variant?: "contained" | "outlined" | "ghost" | null | undefined;
|
|
7
|
-
theme?: "
|
|
7
|
+
theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
|
|
8
8
|
size?: "xs" | "sm" | "md" | "lg" | null | undefined;
|
|
9
9
|
iconOnly?: boolean | null | undefined;
|
|
10
10
|
rounded?: boolean | "extra" | null | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const buttonVariants: (props?: ({
|
|
2
|
-
variant?: "
|
|
2
|
+
variant?: "ghost" | "contained" | "outlined" | null | undefined;
|
|
3
3
|
theme?: "inherit" | "primary" | "secondary" | "destructive" | "warning" | "success" | "info" | "slate" | null | undefined;
|
|
4
4
|
size?: "sm" | "md" | "lg" | "xs" | null | undefined;
|
|
5
5
|
iconOnly?: boolean | null | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const iconVariants: (props?: ({
|
|
2
|
-
variant?: "
|
|
2
|
+
variant?: "ghost" | "contained" | "outlined" | "plain" | null | undefined;
|
|
3
3
|
theme?: "inherit" | "primary" | "secondary" | "destructive" | "warning" | "success" | "info" | "slate" | null | undefined;
|
|
4
4
|
size?: "sm" | "md" | "lg" | "xs" | null | undefined;
|
|
5
5
|
rounded?: boolean | "extra" | null | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const toggleVariants: (props?: ({
|
|
2
|
-
variant?: "
|
|
2
|
+
variant?: "ghost" | "contained" | "outlined" | null | undefined;
|
|
3
3
|
theme?: "inherit" | "primary" | "secondary" | "destructive" | "warning" | "success" | "info" | "slate" | null | undefined;
|
|
4
4
|
size?: "sm" | "md" | "lg" | "xs" | null | undefined;
|
|
5
5
|
iconOnly?: boolean | null | undefined;
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, f as AlertProps, g as AlertProvider, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as CodeBlock, r as CodeBlockProps, D as DevIndicator, s as DevIndicatorProps, t as Dialog, u as DialogClose, v as DialogCloseProps, w as DialogContent, x as DialogContentProps, y as DialogDescription, z as DialogFooter, B as DialogHeader, E as DialogOverlay, F as DialogPortal, G as DialogProps, H as DialogTitle, I as DialogTrigger, J as DialogTriggerProps, K as EmptyState, L as EmptyStateProps, M as Icon, N as IconProps, O as List, P as ListItem, Q as ListItemProps, R as ListProps, T as Pagination, V as ProgressBar, W as ProgressBarProps, Y as Separator, Z as SeparatorProps, a0 as StatCard, a1 as StatCardDirection, a2 as StatCardProps, a3 as StatCardSize, a4 as StatCardTheme, a5 as StatCardVariant, a6 as StatusDot, a7 as StatusDotProps, a8 as Step, a9 as StepProgress, aa as StepProgressProps, ab as Switch, ac as SwitchProps, ad as Table, ae as TableActionCell, af as TableActionCellProps, ag as TableActionItem, ah as TableBody, ai as TableBodyProps, aj as TableCard, ak as TableCell, al as TableFooter, am as TableHead, an as TableHeader, ao as TableRow, ap as TableSortableHeader, aq as TableSortableHeaderProps, ar as TableToolbar, as as TableToolbarProps, at as Toggle, au as ToggleGroup, av as ToggleGroupProps, aw as ToggleProps, ax as TrendDirection, ay as persistAlert, az as statusDotVariants } from './index-
|
|
2
|
-
export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-
|
|
1
|
+
export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, f as AlertProps, g as AlertProvider, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as CodeBlock, r as CodeBlockProps, D as DevIndicator, s as DevIndicatorProps, t as Dialog, u as DialogClose, v as DialogCloseProps, w as DialogContent, x as DialogContentProps, y as DialogDescription, z as DialogFooter, B as DialogHeader, E as DialogOverlay, F as DialogPortal, G as DialogProps, H as DialogTitle, I as DialogTrigger, J as DialogTriggerProps, K as EmptyState, L as EmptyStateProps, M as Icon, N as IconProps, O as List, P as ListItem, Q as ListItemProps, R as ListProps, T as Pagination, V as ProgressBar, W as ProgressBarProps, Y as Separator, Z as SeparatorProps, a0 as StatCard, a1 as StatCardDirection, a2 as StatCardProps, a3 as StatCardSize, a4 as StatCardTheme, a5 as StatCardVariant, a6 as StatusDot, a7 as StatusDotProps, a8 as Step, a9 as StepProgress, aa as StepProgressProps, ab as Switch, ac as SwitchProps, ad as Table, ae as TableActionCell, af as TableActionCellProps, ag as TableActionItem, ah as TableBody, ai as TableBodyProps, aj as TableCard, ak as TableCell, al as TableFooter, am as TableHead, an as TableHeader, ao as TableRow, ap as TableSortableHeader, aq as TableSortableHeaderProps, ar as TableToolbar, as as TableToolbarProps, at as Toggle, au as ToggleGroup, av as ToggleGroupProps, aw as ToggleProps, ax as TrendDirection, ay as persistAlert, az as statusDotVariants } from './index-CkQ6wNCc.js';
|
|
2
|
+
export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-XagXjWLB.js';
|
|
3
3
|
import 'class-variance-authority';
|
|
4
4
|
import 'react';
|
|
5
5
|
import 'class-variance-authority/types';
|