@koobiq/react-components 0.0.1-beta.32 → 0.0.1-beta.34
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/DateInput/DateInput.d.ts +5 -0
- package/dist/components/DateInput/DateInput.js +104 -0
- package/dist/components/DateInput/DateInput.module.css.js +8 -0
- package/dist/components/DateInput/components/DateInputSegment/DateInputSegment.d.ts +7 -0
- package/dist/components/DateInput/components/DateInputSegment/DateInputSegment.js +27 -0
- package/dist/components/DateInput/components/DateInputSegment/DateInputSegment.module.css.js +17 -0
- package/dist/components/DateInput/components/DateInputSegment/index.d.ts +1 -0
- package/dist/components/DateInput/components/index.d.ts +1 -0
- package/dist/components/DateInput/index.d.ts +2 -0
- package/dist/components/DateInput/types.d.ts +47 -0
- package/dist/components/DateInput/types.js +4 -0
- package/dist/components/DatePicker/DatePicker._stories_.d.ts +13 -0
- package/dist/components/DatePicker/DatePicker.d.ts +3 -0
- package/dist/components/DatePicker/index.d.ts +0 -0
- package/dist/components/FieldComponents/FieldInputDate/FieldInputDate.d.ts +12 -0
- package/dist/components/FieldComponents/FieldInputDate/FieldInputDate.js +32 -0
- package/dist/components/FieldComponents/FieldInputDate/FieldInputDate.module.css.js +20 -0
- package/dist/components/FieldComponents/FieldInputDate/index.d.ts +1 -0
- package/dist/components/FieldComponents/index.d.ts +1 -0
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/types.d.ts +1 -1
- package/dist/components/InputNumber/InputNumber.d.ts +1 -1
- package/dist/components/InputNumber/types.d.ts +1 -1
- package/dist/components/Link/types.d.ts +1 -1
- package/dist/components/Menu/Menu.js +1 -1
- package/dist/components/Popover/Popover.d.ts +0 -3
- package/dist/components/Popover/Popover.js +5 -140
- package/dist/components/Popover/PopoverInner.d.ts +3 -0
- package/dist/components/Popover/PopoverInner.js +142 -0
- package/dist/components/RadioGroup/types.d.ts +1 -1
- package/dist/components/Select/Select.js +1 -1
- package/dist/components/Textarea/Textarea.d.ts +1 -1
- package/dist/components/Textarea/types.d.ts +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/index.js +8 -3
- package/dist/style.css +107 -0
- package/package.json +5 -5
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Ref } from 'react';
|
|
2
|
+
import type { DateValue } from '@koobiq/react-primitives';
|
|
3
|
+
import type { DateInputRef, DateInputProps, DateInputComponentProp } from './types';
|
|
4
|
+
export declare function DateInputRender<T extends DateValue>(props: Omit<DateInputProps<T>, 'ref'>, ref: Ref<DateInputRef>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare const DateInput: DateInputComponentProp;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { createCalendar } from "@internationalized/date";
|
|
5
|
+
import { useDOMRef, mergeProps, clsx } from "@koobiq/react-core";
|
|
6
|
+
import { useLocale, useDateFieldState, removeDataAttributes, useDateField } from "@koobiq/react-primitives";
|
|
7
|
+
import s from "./DateInput.module.css.js";
|
|
8
|
+
import { FieldInputDate } from "../FieldComponents/FieldInputDate/FieldInputDate.js";
|
|
9
|
+
import { DateInputSegment } from "./components/DateInputSegment/DateInputSegment.js";
|
|
10
|
+
import { FieldControl } from "../FieldComponents/FieldControl/FieldControl.js";
|
|
11
|
+
import { FieldLabel } from "../FieldComponents/FieldLabel/FieldLabel.js";
|
|
12
|
+
import { FieldInputGroup } from "../FieldComponents/FieldInputGroup/FieldInputGroup.js";
|
|
13
|
+
import { FieldCaption } from "../FieldComponents/FieldCaption/FieldCaption.js";
|
|
14
|
+
import { FieldError } from "../FieldComponents/FieldError/FieldError.js";
|
|
15
|
+
function DateInputRender(props, ref) {
|
|
16
|
+
const { errorMessage } = props;
|
|
17
|
+
const { locale } = useLocale();
|
|
18
|
+
const {
|
|
19
|
+
variant = "filled",
|
|
20
|
+
slotProps,
|
|
21
|
+
caption,
|
|
22
|
+
startAddon,
|
|
23
|
+
endAddon,
|
|
24
|
+
isLabelHidden,
|
|
25
|
+
label,
|
|
26
|
+
className,
|
|
27
|
+
style,
|
|
28
|
+
fullWidth,
|
|
29
|
+
isReadOnly,
|
|
30
|
+
"data-testid": testId
|
|
31
|
+
} = props;
|
|
32
|
+
const state = useDateFieldState({
|
|
33
|
+
...removeDataAttributes(props),
|
|
34
|
+
locale,
|
|
35
|
+
createCalendar
|
|
36
|
+
});
|
|
37
|
+
const domRef = useDOMRef(ref);
|
|
38
|
+
const {
|
|
39
|
+
labelProps: labelPropReactAria,
|
|
40
|
+
fieldProps,
|
|
41
|
+
descriptionProps,
|
|
42
|
+
errorMessageProps,
|
|
43
|
+
...validation
|
|
44
|
+
} = useDateField({ ...removeDataAttributes(props) }, state, domRef);
|
|
45
|
+
const { isInvalid, isRequired, isDisabled } = state;
|
|
46
|
+
const rootProps = mergeProps(
|
|
47
|
+
{
|
|
48
|
+
style,
|
|
49
|
+
fullWidth,
|
|
50
|
+
"data-testid": testId,
|
|
51
|
+
"data-variant": variant,
|
|
52
|
+
"data-invalid": isInvalid,
|
|
53
|
+
"data-disabled": isDisabled,
|
|
54
|
+
"data-fullwidth": fullWidth,
|
|
55
|
+
"data-required": isRequired,
|
|
56
|
+
"data-readonly": isReadOnly,
|
|
57
|
+
className: clsx(s.base, className)
|
|
58
|
+
},
|
|
59
|
+
slotProps?.root
|
|
60
|
+
);
|
|
61
|
+
const labelProps = mergeProps(
|
|
62
|
+
{ isHidden: isLabelHidden, children: label, isRequired },
|
|
63
|
+
labelPropReactAria,
|
|
64
|
+
slotProps?.label
|
|
65
|
+
);
|
|
66
|
+
const groupProps = mergeProps(
|
|
67
|
+
{
|
|
68
|
+
endAddon,
|
|
69
|
+
isInvalid,
|
|
70
|
+
startAddon
|
|
71
|
+
},
|
|
72
|
+
slotProps?.group
|
|
73
|
+
);
|
|
74
|
+
const captionProps = mergeProps({ children: caption }, slotProps?.caption, descriptionProps);
|
|
75
|
+
const errorProps = mergeProps(
|
|
76
|
+
{
|
|
77
|
+
isInvalid,
|
|
78
|
+
children: typeof errorMessage === "function" ? errorMessage({ ...validation }) : errorMessage
|
|
79
|
+
},
|
|
80
|
+
slotProps?.errorMessage,
|
|
81
|
+
errorMessageProps
|
|
82
|
+
);
|
|
83
|
+
const controlProps = mergeProps(
|
|
84
|
+
{
|
|
85
|
+
variant,
|
|
86
|
+
isInvalid,
|
|
87
|
+
isDisabled,
|
|
88
|
+
ref: domRef
|
|
89
|
+
},
|
|
90
|
+
slotProps?.inputDate,
|
|
91
|
+
fieldProps
|
|
92
|
+
);
|
|
93
|
+
return /* @__PURE__ */ jsxs(FieldControl, { ...rootProps, children: [
|
|
94
|
+
/* @__PURE__ */ jsx(FieldLabel, { ...labelProps }),
|
|
95
|
+
/* @__PURE__ */ jsx(FieldInputGroup, { ...groupProps, children: /* @__PURE__ */ jsx(FieldInputDate, { ...controlProps, children: state.segments.map((segment, i) => /* @__PURE__ */ jsx(DateInputSegment, { segment, state }, i)) }) }),
|
|
96
|
+
/* @__PURE__ */ jsx(FieldCaption, { ...captionProps }),
|
|
97
|
+
/* @__PURE__ */ jsx(FieldError, { ...errorProps })
|
|
98
|
+
] });
|
|
99
|
+
}
|
|
100
|
+
const DateInput = forwardRef(DateInputRender);
|
|
101
|
+
export {
|
|
102
|
+
DateInput,
|
|
103
|
+
DateInputRender
|
|
104
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DateSegment, DateFieldState } from '@koobiq/react-primitives';
|
|
2
|
+
type DateInputSegmentProps = {
|
|
3
|
+
segment: DateSegment;
|
|
4
|
+
state: DateFieldState;
|
|
5
|
+
};
|
|
6
|
+
export declare function DateInputSegment({ segment, state }: DateInputSegmentProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef } from "react";
|
|
3
|
+
import { clsx } from "@koobiq/react-core";
|
|
4
|
+
import { useDateSegment } from "@koobiq/react-primitives";
|
|
5
|
+
import s from "./DateInputSegment.module.css.js";
|
|
6
|
+
function DateInputSegment({ segment, state }) {
|
|
7
|
+
const ref = useRef(null);
|
|
8
|
+
const { segmentProps } = useDateSegment(segment, state, ref);
|
|
9
|
+
const { text, isPlaceholder, type } = segment;
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
"span",
|
|
12
|
+
{
|
|
13
|
+
...segmentProps,
|
|
14
|
+
ref,
|
|
15
|
+
className: clsx(
|
|
16
|
+
s.base,
|
|
17
|
+
s[type],
|
|
18
|
+
state.value !== null && s.hasValue,
|
|
19
|
+
isPlaceholder && s.placeholder
|
|
20
|
+
),
|
|
21
|
+
children: text
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
DateInputSegment
|
|
27
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const base = "kbq-dateinputsegment-996e10";
|
|
2
|
+
const placeholder = "kbq-dateinputsegment-placeholder-be1df1";
|
|
3
|
+
const literal = "kbq-dateinputsegment-literal-d722fc";
|
|
4
|
+
const hasValue = "kbq-dateinputsegment-hasValue-886d0f";
|
|
5
|
+
const s = {
|
|
6
|
+
base,
|
|
7
|
+
placeholder,
|
|
8
|
+
literal,
|
|
9
|
+
hasValue
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
base,
|
|
13
|
+
s as default,
|
|
14
|
+
hasValue,
|
|
15
|
+
literal,
|
|
16
|
+
placeholder
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './DateInputSegment';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './DateInputSegment';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ComponentRef, CSSProperties, ReactElement, ReactNode, Ref } from 'react';
|
|
2
|
+
import type { AriaDateFieldProps, DateValue } from '@koobiq/react-primitives';
|
|
3
|
+
import type { FieldCaptionProps, FieldControlProps, FieldErrorProps, FieldInputDateProps, FieldInputGroupProps, FieldLabelProps } from '../FieldComponents';
|
|
4
|
+
export declare const dateInputPropVariant: readonly ["filled", "transparent"];
|
|
5
|
+
export type DateInputPropVariant = (typeof dateInputPropVariant)[number];
|
|
6
|
+
export type DateInputProps<T extends DateValue> = {
|
|
7
|
+
/** Inline styles. */
|
|
8
|
+
style?: CSSProperties;
|
|
9
|
+
/** Additional CSS-classes. */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Unique identifier for testing purposes. */
|
|
12
|
+
'data-testid'?: string | number;
|
|
13
|
+
/** The helper text content. */
|
|
14
|
+
caption?: string | number;
|
|
15
|
+
/**
|
|
16
|
+
* The variant to use.
|
|
17
|
+
* @default filled
|
|
18
|
+
*/
|
|
19
|
+
variant?: DateInputPropVariant;
|
|
20
|
+
/**
|
|
21
|
+
* If true, the input will take up the full width of its container.
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
fullWidth?: boolean;
|
|
25
|
+
/** The props used for each slot inside. */
|
|
26
|
+
slotProps?: {
|
|
27
|
+
root?: FieldControlProps;
|
|
28
|
+
label?: FieldLabelProps;
|
|
29
|
+
group?: FieldInputGroupProps;
|
|
30
|
+
caption?: FieldCaptionProps;
|
|
31
|
+
inputDate?: FieldInputDateProps;
|
|
32
|
+
errorMessage?: FieldErrorProps;
|
|
33
|
+
};
|
|
34
|
+
/** Ref to the control */
|
|
35
|
+
ref?: Ref<HTMLDivElement>;
|
|
36
|
+
/**
|
|
37
|
+
* If `true`, the label is hidden. Be sure to add aria-label to the input element.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isLabelHidden?: boolean;
|
|
41
|
+
/** Addon placed before the children. */
|
|
42
|
+
startAddon?: ReactNode;
|
|
43
|
+
/** Addon placed after the children. */
|
|
44
|
+
endAddon?: ReactNode;
|
|
45
|
+
} & Omit<AriaDateFieldProps<T>, 'description' | 'validationBehavior' | 'validate' | 'validationState'>;
|
|
46
|
+
export type DateInputComponentProp = <T extends DateValue>(props: DateInputProps<T>) => ReactElement | null;
|
|
47
|
+
export type DateInputRef = ComponentRef<'div'>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
import { DatePicker } from './DatePicker';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof DatePicker;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
argTypes: {};
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const Base: Story;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AriaDatePickerProps, DateValue } from '@koobiq/react-primitives';
|
|
2
|
+
export type DatePickerProps<T extends DateValue> = AriaDatePickerProps<T>;
|
|
3
|
+
export declare function DatePicker<T extends DateValue>(props: DatePickerProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode, type Ref } from 'react';
|
|
2
|
+
import type { InputPropVariant } from '../../Input';
|
|
3
|
+
export type FieldInputDateProps = {
|
|
4
|
+
isInvalid?: boolean;
|
|
5
|
+
isDisabled?: boolean;
|
|
6
|
+
variant?: InputPropVariant;
|
|
7
|
+
className?: string;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
'data-testid'?: string;
|
|
10
|
+
ref?: Ref<HTMLDivElement>;
|
|
11
|
+
};
|
|
12
|
+
export declare const FieldInputDate: import("react").ForwardRefExoticComponent<Omit<FieldInputDateProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { clsx } from "@koobiq/react-core";
|
|
4
|
+
import s from "./FieldInputDate.module.css.js";
|
|
5
|
+
const FieldInputDate = forwardRef(
|
|
6
|
+
({
|
|
7
|
+
isInvalid = false,
|
|
8
|
+
isDisabled = false,
|
|
9
|
+
variant = "filled",
|
|
10
|
+
children,
|
|
11
|
+
className,
|
|
12
|
+
...other
|
|
13
|
+
}, ref) => /* @__PURE__ */ jsx(
|
|
14
|
+
"div",
|
|
15
|
+
{
|
|
16
|
+
...other,
|
|
17
|
+
className: clsx(
|
|
18
|
+
s.base,
|
|
19
|
+
s[variant],
|
|
20
|
+
isInvalid && s.invalid,
|
|
21
|
+
isDisabled && s.disabled,
|
|
22
|
+
className
|
|
23
|
+
),
|
|
24
|
+
ref,
|
|
25
|
+
children
|
|
26
|
+
}
|
|
27
|
+
)
|
|
28
|
+
);
|
|
29
|
+
FieldInputDate.displayName = "FieldSelect";
|
|
30
|
+
export {
|
|
31
|
+
FieldInputDate
|
|
32
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const base = "kbq-fieldinputdate-a54331";
|
|
2
|
+
const transparent = "kbq-fieldinputdate-transparent-04d912";
|
|
3
|
+
const filled = "kbq-fieldinputdate-filled-02db7d";
|
|
4
|
+
const invalid = "kbq-fieldinputdate-invalid-d764c6";
|
|
5
|
+
const disabled = "kbq-fieldinputdate-disabled-692832";
|
|
6
|
+
const s = {
|
|
7
|
+
base,
|
|
8
|
+
transparent,
|
|
9
|
+
filled,
|
|
10
|
+
invalid,
|
|
11
|
+
disabled
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
base,
|
|
15
|
+
s as default,
|
|
16
|
+
disabled,
|
|
17
|
+
filled,
|
|
18
|
+
invalid,
|
|
19
|
+
transparent
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FieldInputDate';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TextField } from '@koobiq/react-primitives';
|
|
2
2
|
import { type FieldLabelProps, type FieldInputGroupProps, type FieldCaptionProps, type FieldErrorProps, type FieldInputProps, type FieldControlProps } from '../FieldComponents';
|
|
3
|
-
export declare const Input: import("react").ForwardRefExoticComponent<Omit<Omit<import("@koobiq/react-primitives").TextFieldProps<HTMLInputElement>, "children" | "
|
|
3
|
+
export declare const Input: import("react").ForwardRefExoticComponent<Omit<Omit<import("@koobiq/react-primitives").TextFieldProps<HTMLInputElement>, "children" | "validationBehavior" | "validate" | "description" | "inputElementType">, "value" | "caption" | "label" | "style" | "className" | "defaultValue" | "onChange" | "placeholder" | "isDisabled" | "variant" | "slotProps" | "fullWidth" | "data-testid" | "isInvalid" | "isReadOnly" | "isRequired" | "errorMessage" | "startAddon" | "endAddon" | "isLabelHidden" | keyof {
|
|
4
4
|
disabled?: boolean;
|
|
5
5
|
error?: boolean;
|
|
6
6
|
required?: boolean;
|
|
@@ -115,6 +115,6 @@ export type InputProps = ExtendableProps<{
|
|
|
115
115
|
errorMessage?: FieldErrorProps;
|
|
116
116
|
input?: FieldInputProps<'input'>;
|
|
117
117
|
};
|
|
118
|
-
} & InputDeprecatedProps, Omit<TextFieldProps<HTMLInputElement>, 'description' | 'validationBehavior' | 'validate' | 'children' | '
|
|
118
|
+
} & InputDeprecatedProps, Omit<TextFieldProps<HTMLInputElement>, 'description' | 'validationBehavior' | 'validate' | 'children' | 'inputElementType'>>;
|
|
119
119
|
export type InputRef = ComponentRef<'input'>;
|
|
120
120
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NumberField } from '@koobiq/react-primitives';
|
|
2
2
|
import { type FieldControlProps, type FieldLabelProps, type FieldCaptionProps, type FieldErrorProps, type FieldInputGroupProps, type FieldInputProps } from '../FieldComponents';
|
|
3
|
-
export declare const InputNumber: import("react").ForwardRefExoticComponent<Omit<Omit<import("@react-types/numberfield").AriaNumberFieldProps, "inputElementType">, "caption" | "label" | "style" | "className" | "isDisabled" | "variant" | "slotProps" | "fullWidth" | "data-testid" | "isInvalid" | "isRequired" | "errorMessage" | "startAddon" | "endAddon" | "isLabelHidden" | keyof {
|
|
3
|
+
export declare const InputNumber: import("react").ForwardRefExoticComponent<Omit<Omit<import("@react-types/numberfield").AriaNumberFieldProps, "children" | "validationBehavior" | "validate" | "description" | "inputElementType">, "caption" | "label" | "style" | "className" | "isDisabled" | "variant" | "slotProps" | "fullWidth" | "data-testid" | "isInvalid" | "isRequired" | "errorMessage" | "startAddon" | "endAddon" | "isLabelHidden" | keyof {
|
|
4
4
|
disabled?: boolean;
|
|
5
5
|
error?: boolean;
|
|
6
6
|
required?: boolean;
|
|
@@ -102,6 +102,6 @@ export type InputNumberProps = ExtendableProps<{
|
|
|
102
102
|
group?: FieldInputGroupProps;
|
|
103
103
|
errorMessage?: FieldErrorProps;
|
|
104
104
|
};
|
|
105
|
-
} & InputNumberDeprecatedProps, Omit<UseNumberFieldProps, 'inputElementType'>>;
|
|
105
|
+
} & InputNumberDeprecatedProps, Omit<UseNumberFieldProps, 'description' | 'validationBehavior' | 'validate' | 'children' | 'inputElementType'>>;
|
|
106
106
|
export type InputNumberRef = ComponentRef<'input'>;
|
|
107
107
|
export {};
|
|
@@ -3,11 +3,11 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { forwardRef, useRef } from "react";
|
|
4
4
|
import { useDOMRef, mergeProps, clsx, Pressable } from "@koobiq/react-core";
|
|
5
5
|
import { useMenuTriggerState, useMenuTrigger } from "@koobiq/react-primitives";
|
|
6
|
+
import { PopoverInner } from "../Popover/PopoverInner.js";
|
|
6
7
|
import s from "./Menu.module.css.js";
|
|
7
8
|
import { MenuInner } from "./components/MenuInner/MenuInner.js";
|
|
8
9
|
import { Header } from "../Collections/Header.js";
|
|
9
10
|
import { Divider } from "../Collections/Divider.js";
|
|
10
|
-
import { PopoverInner } from "../Popover/Popover.js";
|
|
11
11
|
import { Item } from "../Collections/Item.js";
|
|
12
12
|
import { Section } from "../Collections/Section.js";
|
|
13
13
|
import { ListItemText } from "../List/components/ListItemText/ListItemText.js";
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import type { FC } from 'react';
|
|
2
1
|
import { Dialog } from '../Dialog';
|
|
3
|
-
import type { PopoverInnerProps } from './types';
|
|
4
|
-
export declare const PopoverInner: FC<PopoverInnerProps>;
|
|
5
2
|
declare const PopoverComponent: import("react").ForwardRefExoticComponent<import("./types").PopoverBaseProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
6
3
|
type CompoundedComponent = typeof PopoverComponent & {
|
|
7
4
|
Header: typeof Dialog.Header;
|
|
@@ -1,143 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { forwardRef
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Transition } from "react-transition-group";
|
|
7
|
-
import s from "./Popover.module.css.js";
|
|
8
|
-
import { normalizeInlineSize } from "./utils.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { useOverlayTriggerState } from "@koobiq/react-primitives";
|
|
5
|
+
import { PopoverInner } from "./PopoverInner.js";
|
|
9
6
|
import { Dialog } from "../Dialog/Dialog.js";
|
|
10
|
-
const PopoverInner = (props) => {
|
|
11
|
-
const {
|
|
12
|
-
offset = 0,
|
|
13
|
-
size = "medium",
|
|
14
|
-
crossOffset = 0,
|
|
15
|
-
hideArrow = false,
|
|
16
|
-
containerPadding = 12,
|
|
17
|
-
arrowBoundaryOffset = 20,
|
|
18
|
-
placement: placementProp = "top",
|
|
19
|
-
maxBlockSize = 480,
|
|
20
|
-
type = "dialog",
|
|
21
|
-
state,
|
|
22
|
-
control,
|
|
23
|
-
children,
|
|
24
|
-
anchorRef,
|
|
25
|
-
slotProps,
|
|
26
|
-
className,
|
|
27
|
-
isNonModal,
|
|
28
|
-
popoverRef,
|
|
29
|
-
portalContainer,
|
|
30
|
-
hideCloseButton,
|
|
31
|
-
disableFocusManagement,
|
|
32
|
-
disableExitOnEscapeKeyDown,
|
|
33
|
-
shouldCloseOnInteractOutside,
|
|
34
|
-
...other
|
|
35
|
-
} = props;
|
|
36
|
-
const showArrow = !hideArrow;
|
|
37
|
-
const domRef = useDOMRef(popoverRef);
|
|
38
|
-
const controlRef = useRef(null);
|
|
39
|
-
const openState = state.isOpen;
|
|
40
|
-
const [opened, { on, off }] = useBoolean(openState);
|
|
41
|
-
const { triggerProps, overlayProps } = useOverlayTrigger(
|
|
42
|
-
{ type },
|
|
43
|
-
{ ...state, isOpen: openState }
|
|
44
|
-
);
|
|
45
|
-
const {
|
|
46
|
-
popoverProps,
|
|
47
|
-
underlayProps,
|
|
48
|
-
arrowProps: arrowPropsCommon,
|
|
49
|
-
placement
|
|
50
|
-
} = usePopover(
|
|
51
|
-
{
|
|
52
|
-
...props,
|
|
53
|
-
offset,
|
|
54
|
-
isNonModal,
|
|
55
|
-
crossOffset,
|
|
56
|
-
containerPadding,
|
|
57
|
-
popoverRef: domRef,
|
|
58
|
-
arrowBoundaryOffset,
|
|
59
|
-
maxHeight: maxBlockSize,
|
|
60
|
-
placement: placementProp,
|
|
61
|
-
shouldCloseOnInteractOutside,
|
|
62
|
-
triggerRef: anchorRef || controlRef,
|
|
63
|
-
isKeyboardDismissDisabled: disableExitOnEscapeKeyDown
|
|
64
|
-
},
|
|
65
|
-
{ ...state, isOpen: openState || opened }
|
|
66
|
-
);
|
|
67
|
-
const resolvedChildren = () => {
|
|
68
|
-
if (typeof children === "function")
|
|
69
|
-
return cloneElement(children({ close: state.close }), overlayProps);
|
|
70
|
-
if (isValidElement(children)) return cloneElement(children, overlayProps);
|
|
71
|
-
return children;
|
|
72
|
-
};
|
|
73
|
-
const arrowProps = mergeProps(
|
|
74
|
-
{ className: s.arrow },
|
|
75
|
-
arrowPropsCommon,
|
|
76
|
-
slotProps?.arrow
|
|
77
|
-
);
|
|
78
|
-
const dialogProps = mergeProps(
|
|
79
|
-
{
|
|
80
|
-
role: "dialog",
|
|
81
|
-
hideCloseButton,
|
|
82
|
-
className: s.dialog,
|
|
83
|
-
onClose: state.close
|
|
84
|
-
},
|
|
85
|
-
slotProps?.dialog
|
|
86
|
-
);
|
|
87
|
-
const backdropProps = mergeProps(
|
|
88
|
-
{ className: s.underlay },
|
|
89
|
-
slotProps?.backdrop,
|
|
90
|
-
underlayProps
|
|
91
|
-
);
|
|
92
|
-
const transitionProps = mergeProps(
|
|
93
|
-
{
|
|
94
|
-
timeout: 120,
|
|
95
|
-
onEnter: on,
|
|
96
|
-
onExited: off,
|
|
97
|
-
appear: true,
|
|
98
|
-
in: openState,
|
|
99
|
-
nodeRef: domRef,
|
|
100
|
-
unmountOnExit: true
|
|
101
|
-
},
|
|
102
|
-
slotProps?.transition
|
|
103
|
-
);
|
|
104
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
105
|
-
control?.({
|
|
106
|
-
ref: controlRef,
|
|
107
|
-
...triggerProps
|
|
108
|
-
}),
|
|
109
|
-
/* @__PURE__ */ jsx(Transition, { ...transitionProps, children: (transition) => /* @__PURE__ */ jsxs(
|
|
110
|
-
Overlay,
|
|
111
|
-
{
|
|
112
|
-
portalContainer,
|
|
113
|
-
disableFocusManagement,
|
|
114
|
-
children: [
|
|
115
|
-
/* @__PURE__ */ jsx("div", { ...backdropProps }),
|
|
116
|
-
/* @__PURE__ */ jsxs(
|
|
117
|
-
"div",
|
|
118
|
-
{
|
|
119
|
-
ref: domRef,
|
|
120
|
-
"data-size": size,
|
|
121
|
-
"data-arrow": showArrow,
|
|
122
|
-
"data-placement": placement,
|
|
123
|
-
"data-transition": transition,
|
|
124
|
-
className: clsx(s.base, s[size], className),
|
|
125
|
-
...mergeProps(popoverProps, other),
|
|
126
|
-
style: {
|
|
127
|
-
...popoverProps.style,
|
|
128
|
-
"--popover-inline-size": normalizeInlineSize(size)
|
|
129
|
-
},
|
|
130
|
-
children: [
|
|
131
|
-
showArrow && /* @__PURE__ */ jsx("div", { ...arrowProps, "data-placement": placement }),
|
|
132
|
-
/* @__PURE__ */ jsx("div", { className: s.container, children: type === "dialog" ? /* @__PURE__ */ jsx(Dialog, { ...dialogProps, children: resolvedChildren() }) : resolvedChildren() })
|
|
133
|
-
]
|
|
134
|
-
}
|
|
135
|
-
)
|
|
136
|
-
]
|
|
137
|
-
}
|
|
138
|
-
) })
|
|
139
|
-
] });
|
|
140
|
-
};
|
|
141
7
|
const PopoverComponent = forwardRef(
|
|
142
8
|
(props, ref) => {
|
|
143
9
|
const { open, onOpenChange, defaultOpen, ...other } = props;
|
|
@@ -156,6 +22,5 @@ Popover.Header = Dialog.Header;
|
|
|
156
22
|
Popover.Body = Dialog.Body;
|
|
157
23
|
Popover.Footer = Dialog.Footer;
|
|
158
24
|
export {
|
|
159
|
-
Popover
|
|
160
|
-
PopoverInner
|
|
25
|
+
Popover
|
|
161
26
|
};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, cloneElement, isValidElement } from "react";
|
|
3
|
+
import { useDOMRef, useBoolean, mergeProps, clsx } from "@koobiq/react-core";
|
|
4
|
+
import { useOverlayTrigger, usePopover, Overlay } from "@koobiq/react-primitives";
|
|
5
|
+
import { Transition } from "react-transition-group";
|
|
6
|
+
import s from "./Popover.module.css.js";
|
|
7
|
+
import { normalizeInlineSize } from "./utils.js";
|
|
8
|
+
import { Dialog } from "../Dialog/Dialog.js";
|
|
9
|
+
const PopoverInner = (props) => {
|
|
10
|
+
const {
|
|
11
|
+
offset = 0,
|
|
12
|
+
size = "medium",
|
|
13
|
+
crossOffset = 0,
|
|
14
|
+
hideArrow = false,
|
|
15
|
+
containerPadding = 12,
|
|
16
|
+
arrowBoundaryOffset = 20,
|
|
17
|
+
placement: placementProp = "top",
|
|
18
|
+
maxBlockSize = 480,
|
|
19
|
+
type = "dialog",
|
|
20
|
+
state,
|
|
21
|
+
control,
|
|
22
|
+
children,
|
|
23
|
+
anchorRef,
|
|
24
|
+
slotProps,
|
|
25
|
+
className,
|
|
26
|
+
isNonModal,
|
|
27
|
+
popoverRef,
|
|
28
|
+
portalContainer,
|
|
29
|
+
hideCloseButton,
|
|
30
|
+
disableFocusManagement,
|
|
31
|
+
disableExitOnEscapeKeyDown,
|
|
32
|
+
shouldCloseOnInteractOutside,
|
|
33
|
+
...other
|
|
34
|
+
} = props;
|
|
35
|
+
const showArrow = !hideArrow;
|
|
36
|
+
const domRef = useDOMRef(popoverRef);
|
|
37
|
+
const controlRef = useRef(null);
|
|
38
|
+
const openState = state.isOpen;
|
|
39
|
+
const [opened, { on, off }] = useBoolean(openState);
|
|
40
|
+
const { triggerProps, overlayProps } = useOverlayTrigger(
|
|
41
|
+
{ type },
|
|
42
|
+
{ ...state, isOpen: openState }
|
|
43
|
+
);
|
|
44
|
+
const {
|
|
45
|
+
popoverProps,
|
|
46
|
+
underlayProps,
|
|
47
|
+
arrowProps: arrowPropsCommon,
|
|
48
|
+
placement
|
|
49
|
+
} = usePopover(
|
|
50
|
+
{
|
|
51
|
+
...props,
|
|
52
|
+
offset,
|
|
53
|
+
isNonModal,
|
|
54
|
+
crossOffset,
|
|
55
|
+
containerPadding,
|
|
56
|
+
popoverRef: domRef,
|
|
57
|
+
arrowBoundaryOffset,
|
|
58
|
+
maxHeight: maxBlockSize,
|
|
59
|
+
placement: placementProp,
|
|
60
|
+
shouldCloseOnInteractOutside,
|
|
61
|
+
triggerRef: anchorRef || controlRef,
|
|
62
|
+
isKeyboardDismissDisabled: disableExitOnEscapeKeyDown
|
|
63
|
+
},
|
|
64
|
+
{ ...state, isOpen: openState || opened }
|
|
65
|
+
);
|
|
66
|
+
const resolvedChildren = () => {
|
|
67
|
+
if (typeof children === "function")
|
|
68
|
+
return cloneElement(children({ close: state.close }), overlayProps);
|
|
69
|
+
if (isValidElement(children)) return cloneElement(children, overlayProps);
|
|
70
|
+
return children;
|
|
71
|
+
};
|
|
72
|
+
const arrowProps = mergeProps(
|
|
73
|
+
{ className: s.arrow },
|
|
74
|
+
arrowPropsCommon,
|
|
75
|
+
slotProps?.arrow
|
|
76
|
+
);
|
|
77
|
+
const dialogProps = mergeProps(
|
|
78
|
+
{
|
|
79
|
+
role: "dialog",
|
|
80
|
+
hideCloseButton,
|
|
81
|
+
className: s.dialog,
|
|
82
|
+
onClose: state.close
|
|
83
|
+
},
|
|
84
|
+
slotProps?.dialog
|
|
85
|
+
);
|
|
86
|
+
const backdropProps = mergeProps(
|
|
87
|
+
{ className: s.underlay },
|
|
88
|
+
slotProps?.backdrop,
|
|
89
|
+
underlayProps
|
|
90
|
+
);
|
|
91
|
+
const transitionProps = mergeProps(
|
|
92
|
+
{
|
|
93
|
+
timeout: 120,
|
|
94
|
+
onEnter: on,
|
|
95
|
+
onExited: off,
|
|
96
|
+
appear: true,
|
|
97
|
+
in: openState,
|
|
98
|
+
nodeRef: domRef,
|
|
99
|
+
unmountOnExit: true
|
|
100
|
+
},
|
|
101
|
+
slotProps?.transition
|
|
102
|
+
);
|
|
103
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
104
|
+
control?.({
|
|
105
|
+
ref: controlRef,
|
|
106
|
+
...triggerProps
|
|
107
|
+
}),
|
|
108
|
+
/* @__PURE__ */ jsx(Transition, { ...transitionProps, children: (transition) => /* @__PURE__ */ jsxs(
|
|
109
|
+
Overlay,
|
|
110
|
+
{
|
|
111
|
+
portalContainer,
|
|
112
|
+
disableFocusManagement,
|
|
113
|
+
children: [
|
|
114
|
+
/* @__PURE__ */ jsx("div", { ...backdropProps }),
|
|
115
|
+
/* @__PURE__ */ jsxs(
|
|
116
|
+
"div",
|
|
117
|
+
{
|
|
118
|
+
ref: domRef,
|
|
119
|
+
"data-size": size,
|
|
120
|
+
"data-arrow": showArrow,
|
|
121
|
+
"data-placement": placement,
|
|
122
|
+
"data-transition": transition,
|
|
123
|
+
className: clsx(s.base, s[size], className),
|
|
124
|
+
...mergeProps(popoverProps, other),
|
|
125
|
+
style: {
|
|
126
|
+
...popoverProps.style,
|
|
127
|
+
"--popover-inline-size": normalizeInlineSize(size)
|
|
128
|
+
},
|
|
129
|
+
children: [
|
|
130
|
+
showArrow && /* @__PURE__ */ jsx("div", { ...arrowProps, "data-placement": placement }),
|
|
131
|
+
/* @__PURE__ */ jsx("div", { className: s.container, children: type === "dialog" ? /* @__PURE__ */ jsx(Dialog, { ...dialogProps, children: resolvedChildren() }) : resolvedChildren() })
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
)
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
) })
|
|
138
|
+
] });
|
|
139
|
+
};
|
|
140
|
+
export {
|
|
141
|
+
PopoverInner
|
|
142
|
+
};
|
|
@@ -33,5 +33,5 @@ export type RadioGroupBaseProps = ExtendableProps<{
|
|
|
33
33
|
defaultValue?: UseRadioGroupProps['defaultValue'];
|
|
34
34
|
/** Handler that is called when the value changes. */
|
|
35
35
|
onChange?: UseRadioGroupProps['onChange'];
|
|
36
|
-
}, UseRadioGroupProps
|
|
36
|
+
}, Omit<UseRadioGroupProps, 'validationBehavior' | 'validate' | 'validationState'>>;
|
|
37
37
|
export type RadioGroupProps = ExtendableComponentPropsWithRef<RadioGroupBaseProps, 'div'>;
|
|
@@ -4,9 +4,9 @@ import { deprecate } from "@koobiq/logger";
|
|
|
4
4
|
import { useDOMRef, useBoolean, useElementSize, mergeProps, clsx } from "@koobiq/react-core";
|
|
5
5
|
import { IconChevronDownS16 } from "@koobiq/react-icons";
|
|
6
6
|
import { useSelectState, removeDataAttributes, useSelect, HiddenSelect } from "@koobiq/react-primitives";
|
|
7
|
+
import { PopoverInner } from "../Popover/PopoverInner.js";
|
|
7
8
|
import s from "./Select.module.css.js";
|
|
8
9
|
import { FieldSelect } from "../FieldComponents/FieldSelect/FieldSelect.js";
|
|
9
|
-
import { PopoverInner } from "../Popover/Popover.js";
|
|
10
10
|
import { ListInner } from "../List/List.js";
|
|
11
11
|
import { FieldControl } from "../FieldComponents/FieldControl/FieldControl.js";
|
|
12
12
|
import { FieldLabel } from "../FieldComponents/FieldLabel/FieldLabel.js";
|
|
@@ -4,7 +4,7 @@ export declare const Textarea: import("react").ForwardRefExoticComponent<Omit<{
|
|
|
4
4
|
required?: boolean;
|
|
5
5
|
hiddenLabel?: boolean;
|
|
6
6
|
readonly?: boolean;
|
|
7
|
-
} & Omit<import("@koobiq/react-primitives").TextFieldProps<HTMLTextAreaElement>, "children" | "style" | "className" | "validationBehavior" | "validate" | "description" | "inputElementType">, "caption" | "label" | "className" | "cols" | "rows" | "isDisabled" | "variant" | "slotProps" | "fullWidth" | "data-testid" | "isInvalid" | "isReadOnly" | "isRequired" | "errorMessage" | "isLabelHidden" | "expand"> & {
|
|
7
|
+
} & Omit<import("@koobiq/react-primitives").TextFieldProps<HTMLTextAreaElement>, "children" | "style" | "className" | "validationState" | "validationBehavior" | "validate" | "description" | "inputElementType">, "caption" | "label" | "className" | "cols" | "rows" | "isDisabled" | "variant" | "slotProps" | "fullWidth" | "data-testid" | "isInvalid" | "isReadOnly" | "isRequired" | "errorMessage" | "isLabelHidden" | "expand"> & {
|
|
8
8
|
label?: import("react").ReactNode;
|
|
9
9
|
className?: string;
|
|
10
10
|
variant?: import("./types").TextareaPropVariant;
|
|
@@ -112,6 +112,6 @@ export type TextareaProps = ExtendableProps<{
|
|
|
112
112
|
textarea?: FieldInputProps<'textarea'>;
|
|
113
113
|
errorMessage?: FieldErrorProps;
|
|
114
114
|
};
|
|
115
|
-
}, TextareaDeprecatedProps & Omit<TextFieldProps<HTMLTextAreaElement>, 'description' | 'validationBehavior' | 'validate' | 'children' | 'style' | 'className' | 'inputElementType'>>;
|
|
115
|
+
}, TextareaDeprecatedProps & Omit<TextFieldProps<HTMLTextAreaElement>, 'description' | 'validationBehavior' | 'validationState' | 'validate' | 'children' | 'style' | 'className' | 'inputElementType'>>;
|
|
116
116
|
export type TextareaRef = ComponentRef<'textarea'>;
|
|
117
117
|
export {};
|
|
@@ -31,6 +31,7 @@ export * from './ButtonToggleGroup';
|
|
|
31
31
|
export * from './TagGroup';
|
|
32
32
|
export * from './Table';
|
|
33
33
|
export * from './Calendar';
|
|
34
|
+
export * from './DateInput';
|
|
34
35
|
export * from './layout';
|
|
35
|
-
export { useListData } from '@koobiq/react-primitives';
|
|
36
|
+
export { useListData, useDateFormatter, type DateFormatterOptions, } from '@koobiq/react-primitives';
|
|
36
37
|
export { useRouter, RouterProvider } from '@koobiq/react-primitives';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
-
import { RouterProvider, useListData, useLocale, useRouter } from "@koobiq/react-primitives";
|
|
2
|
+
import { RouterProvider, useDateFormatter, useListData, useLocale, useRouter } from "@koobiq/react-primitives";
|
|
3
3
|
import { Provider, defaultBreakpoints } from "./components/Provider/Provider.js";
|
|
4
4
|
import { BreakpointsProvider } from "./components/Provider/BreakpointsProvider.js";
|
|
5
5
|
import { ProviderContext, useProvider } from "./components/Provider/ProviderContext.js";
|
|
@@ -50,7 +50,7 @@ import { ModalContent, ModalFooter, ModalHeader } from "./components/Modal/index
|
|
|
50
50
|
import { SidePanel } from "./components/SidePanel/SidePanel.js";
|
|
51
51
|
import { sidePanelPropPosition, sidePanelPropSize } from "./components/SidePanel/types.js";
|
|
52
52
|
import { SidePanelContent, SidePanelFooter, SidePanelHeader } from "./components/SidePanel/index.js";
|
|
53
|
-
import { Popover
|
|
53
|
+
import { Popover } from "./components/Popover/Popover.js";
|
|
54
54
|
import { popoverPropPlacement, popoverPropSize, popoverPropType } from "./components/Popover/types.js";
|
|
55
55
|
import { PopoverContent, PopoverFooter, PopoverHeader } from "./components/Popover/index.js";
|
|
56
56
|
import { Tooltip } from "./components/Tooltip/Tooltip.js";
|
|
@@ -73,6 +73,8 @@ import { Tag } from "./components/TagGroup/Tag.js";
|
|
|
73
73
|
import { tagGroupPropVariant } from "./components/TagGroup/types.js";
|
|
74
74
|
import { Table } from "./components/Table/Table.js";
|
|
75
75
|
import { Calendar } from "./components/Calendar/Calendar.js";
|
|
76
|
+
import { DateInput, DateInputRender } from "./components/DateInput/DateInput.js";
|
|
77
|
+
import { dateInputPropVariant } from "./components/DateInput/types.js";
|
|
76
78
|
import { flex, flexPropAlignItems, flexPropDirection, flexPropFlex, flexPropGap, flexPropJustifyContent, flexPropOrder, flexPropWrap } from "./components/layout/flex/flex.js";
|
|
77
79
|
import { spacing, spacingGap } from "./components/layout/spacing/spacing.js";
|
|
78
80
|
export {
|
|
@@ -87,6 +89,8 @@ export {
|
|
|
87
89
|
Calendar,
|
|
88
90
|
Checkbox,
|
|
89
91
|
Container,
|
|
92
|
+
DateInput,
|
|
93
|
+
DateInputRender,
|
|
90
94
|
Divider,
|
|
91
95
|
FlexBox,
|
|
92
96
|
Grid,
|
|
@@ -109,7 +113,6 @@ export {
|
|
|
109
113
|
PopoverContent,
|
|
110
114
|
PopoverFooter,
|
|
111
115
|
PopoverHeader,
|
|
112
|
-
PopoverInner,
|
|
113
116
|
ProgressBar,
|
|
114
117
|
ProgressSpinner,
|
|
115
118
|
Provider,
|
|
@@ -142,6 +145,7 @@ export {
|
|
|
142
145
|
checkboxPropSize,
|
|
143
146
|
containerMarginsProp,
|
|
144
147
|
containerPositionProp,
|
|
148
|
+
dateInputPropVariant,
|
|
145
149
|
defaultBreakpoints,
|
|
146
150
|
dividerPropDisplay,
|
|
147
151
|
dividerPropOrientation,
|
|
@@ -187,6 +191,7 @@ export {
|
|
|
187
191
|
typographyPropDisplay,
|
|
188
192
|
typographyPropVariant,
|
|
189
193
|
useBreakpoints,
|
|
194
|
+
useDateFormatter,
|
|
190
195
|
useListData,
|
|
191
196
|
useLocale,
|
|
192
197
|
useMatchedBreakpoints,
|
package/dist/style.css
CHANGED
|
@@ -3750,6 +3750,113 @@
|
|
|
3750
3750
|
color: var(--kbq-states-foreground-disabled);
|
|
3751
3751
|
cursor: not-allowed;
|
|
3752
3752
|
}
|
|
3753
|
+
.kbq-dateinput-a4c39b {
|
|
3754
|
+
min-inline-size: 150px;
|
|
3755
|
+
}
|
|
3756
|
+
.kbq-fieldinputdate-a54331 {
|
|
3757
|
+
--field-input-outline-width: var(--kbq-size-3xs);
|
|
3758
|
+
--field-input-color: var(--kbq-foreground-contrast);
|
|
3759
|
+
--field-input-border-color: var(--kbq-line-contrast-fade);
|
|
3760
|
+
--field-input-outline-color: var(--kbq-states-line-focus-theme);
|
|
3761
|
+
--field-input-bg-color: var(--kbq-background-bg);
|
|
3762
|
+
--field-input-placeholder-color: var(--kbq-foreground-contrast-tertiary);
|
|
3763
|
+
cursor: pointer;
|
|
3764
|
+
outline-offset: -1px;
|
|
3765
|
+
box-sizing: border-box;
|
|
3766
|
+
inline-size: 100%;
|
|
3767
|
+
block-size: var(--kbq-size-3xl);
|
|
3768
|
+
border-radius: var(--kbq-size-s);
|
|
3769
|
+
color: var(--field-input-color);
|
|
3770
|
+
background: var(--field-input-bg-color);
|
|
3771
|
+
border: 1px solid var(--field-input-border-color);
|
|
3772
|
+
outline: var(--field-input-outline-width) solid transparent;
|
|
3773
|
+
padding-block: var(--field-input-padding-block-start) var(--field-input-padding-block-end);
|
|
3774
|
+
padding-inline: var(--field-input-padding-inline-start) var(--field-input-padding-inline-end);
|
|
3775
|
+
font-size: var(--kbq-typography-text-normal-font-size);
|
|
3776
|
+
font-weight: var(--kbq-typography-text-normal-font-weight);
|
|
3777
|
+
line-height: var(--kbq-typography-text-normal-line-height);
|
|
3778
|
+
font-family: var(--kbq-typography-text-normal-font-family);
|
|
3779
|
+
font-style: var(--kbq-typography-text-normal-font-style);
|
|
3780
|
+
text-transform: var(--kbq-typography-text-normal-text-transform);
|
|
3781
|
+
font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);
|
|
3782
|
+
letter-spacing: var(--kbq-typography-text-normal-letter-spacing);
|
|
3783
|
+
text-underline-offset: calc(( var(--kbq-typography-text-normal-line-height) - var(--kbq-typography-text-normal-font-size)) / 2);
|
|
3784
|
+
transition: color var(--kbq-transition-default), outline-color var(--kbq-transition-default), background-color var(--kbq-transition-default), border-color var(--kbq-transition-default);
|
|
3785
|
+
align-items: center;
|
|
3786
|
+
display: flex;
|
|
3787
|
+
}
|
|
3788
|
+
|
|
3789
|
+
.kbq-fieldinputdate-a54331:focus-within {
|
|
3790
|
+
outline-color: var(--field-input-outline-color);
|
|
3791
|
+
}
|
|
3792
|
+
|
|
3793
|
+
.kbq-fieldinputdate-transparent-04d912 {
|
|
3794
|
+
--field-input-color: var(--kbq-foreground-contrast);
|
|
3795
|
+
--field-input-border-color: transparent;
|
|
3796
|
+
--field-input-outline-color: transparent;
|
|
3797
|
+
--field-input-bg-color: transparent;
|
|
3798
|
+
--field-input-placeholder-color: var(--kbq-foreground-contrast-tertiary);
|
|
3799
|
+
}
|
|
3800
|
+
|
|
3801
|
+
.kbq-fieldinputdate-filled-02db7d {
|
|
3802
|
+
--field-input-color: var(--kbq-foreground-contrast);
|
|
3803
|
+
--field-input-border-color: var(--kbq-line-contrast-fade);
|
|
3804
|
+
--field-input-outline-color: var(--kbq-states-line-focus-theme);
|
|
3805
|
+
--field-input-bg-color: var(--kbq-background-bg);
|
|
3806
|
+
--field-input-placeholder-color: var(--kbq-foreground-contrast-tertiary);
|
|
3807
|
+
}
|
|
3808
|
+
|
|
3809
|
+
.kbq-fieldinputdate-filled-02db7d:where(.kbq-fieldinputdate-invalid-d764c6) {
|
|
3810
|
+
--field-input-color: var(--kbq-foreground-error);
|
|
3811
|
+
--field-input-border-color: var(--kbq-line-error);
|
|
3812
|
+
--field-input-outline-color: var(--kbq-states-line-focus-error);
|
|
3813
|
+
--field-input-bg-color: var(--kbq-states-background-error-less);
|
|
3814
|
+
--field-input-placeholder-color: var(--kbq-foreground-error-tertiary);
|
|
3815
|
+
}
|
|
3816
|
+
|
|
3817
|
+
.kbq-fieldinputdate-transparent-04d912:where(.kbq-fieldinputdate-invalid-d764c6) {
|
|
3818
|
+
--field-input-color: var(--kbq-foreground-error);
|
|
3819
|
+
--field-input-border-color: transparent;
|
|
3820
|
+
--field-input-outline-color: transparent;
|
|
3821
|
+
--field-input-bg-color: transparent;
|
|
3822
|
+
--field-input-placeholder-color: var(--kbq-foreground-error-tertiary);
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3825
|
+
.kbq-fieldinputdate-disabled-692832 {
|
|
3826
|
+
cursor: not-allowed;
|
|
3827
|
+
}
|
|
3828
|
+
|
|
3829
|
+
.kbq-fieldinputdate-filled-02db7d:where(.kbq-fieldinputdate-disabled-692832) {
|
|
3830
|
+
--field-input-color: var(--kbq-states-foreground-disabled);
|
|
3831
|
+
--field-input-border-color: var(--kbq-states-line-disabled);
|
|
3832
|
+
--field-input-bg-color: var(--kbq-states-background-disabled);
|
|
3833
|
+
}
|
|
3834
|
+
|
|
3835
|
+
.kbq-fieldinputdate-transparent-04d912:where(.kbq-fieldinputdate-disabled-692832) {
|
|
3836
|
+
--field-input-color: var(--kbq-states-foreground-disabled);
|
|
3837
|
+
}
|
|
3838
|
+
.kbq-dateinputsegment-996e10 {
|
|
3839
|
+
--date-input-segment-color: var(--field-input-color);
|
|
3840
|
+
color: var(--date-input-segment-color);
|
|
3841
|
+
}
|
|
3842
|
+
|
|
3843
|
+
.kbq-dateinputsegment-996e10:focus {
|
|
3844
|
+
color: var(--date-input-segment-color);
|
|
3845
|
+
background-color: highlight;
|
|
3846
|
+
outline: none;
|
|
3847
|
+
}
|
|
3848
|
+
|
|
3849
|
+
.kbq-dateinputsegment-placeholder-be1df1 {
|
|
3850
|
+
color: var(--field-input-placeholder-color);
|
|
3851
|
+
}
|
|
3852
|
+
|
|
3853
|
+
.kbq-dateinputsegment-literal-d722fc {
|
|
3854
|
+
white-space: pre;
|
|
3855
|
+
}
|
|
3856
|
+
|
|
3857
|
+
.kbq-dateinputsegment-literal-d722fc:not(.kbq-dateinputsegment-hasValue-886d0f) {
|
|
3858
|
+
color: var(--field-input-placeholder-color);
|
|
3859
|
+
}
|
|
3753
3860
|
.kbq-spacing-mbs_0-be7021 {
|
|
3754
3861
|
margin-block-start: 0;
|
|
3755
3862
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koobiq/react-components",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.34",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"@koobiq/design-tokens": "^3.12.1",
|
|
28
28
|
"@types/react-transition-group": "^4.4.12",
|
|
29
29
|
"react-transition-group": "^4.4.5",
|
|
30
|
-
"@koobiq/
|
|
31
|
-
"@koobiq/react-
|
|
32
|
-
"@koobiq/react-primitives": "0.0.1-beta.
|
|
33
|
-
"@koobiq/
|
|
30
|
+
"@koobiq/react-core": "0.0.1-beta.34",
|
|
31
|
+
"@koobiq/react-icons": "0.0.1-beta.34",
|
|
32
|
+
"@koobiq/react-primitives": "0.0.1-beta.34",
|
|
33
|
+
"@koobiq/logger": "0.0.1-beta.34"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@koobiq/design-tokens": "^3.11.2",
|