gbs-add-block 1.2.15 → 1.2.16
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/README.md +2 -2
- package/index.cjs +214 -21
- package/package.json +1 -1
- package/source/beta-components/breadcrumb/react/props.ts +2 -2
- package/source/beta-components/breadcrumb/styles.css +8 -8
- package/source/beta-components/button/react/props.ts +2 -2
- package/source/beta-components/button/styles.css +15 -15
- package/source/beta-components/checkbox/react/Checkbox.tsx +147 -146
- package/source/beta-components/checkbox/react/CheckboxGroup.tsx +8 -8
- package/source/beta-components/checkbox/react/props.ts +2 -2
- package/source/beta-components/checkbox/styles.css +11 -11
- package/source/beta-components/combobox/README.md +3 -3
- package/source/beta-components/combobox/react/MultiSelect.tsx +265 -263
- package/source/beta-components/combobox/react/Popover.tsx +38 -70
- package/source/beta-components/combobox/react/Select.tsx +200 -198
- package/source/beta-components/combobox/react/icons.tsx +6 -29
- package/source/beta-components/combobox/react/props.ts +4 -2
- package/source/beta-components/combobox/styles.css +18 -18
- package/source/beta-components/data-grid/react/Popover.tsx +35 -0
- package/source/beta-components/{datagrid → data-grid}/react/context.ts +2 -2
- package/source/beta-components/{datagrid → data-grid}/react/icons.tsx +8 -35
- package/source/beta-components/{datagrid → data-grid}/styles.css +24 -24
- package/source/beta-components/{datepicker → date-picker}/README.md +3 -3
- package/source/beta-components/{datepicker → date-picker}/react/DatePicker.tsx +249 -249
- package/source/beta-components/{datepicker → date-picker}/react/DateRangePicker.tsx +291 -291
- package/source/beta-components/date-picker/react/Popover.tsx +45 -0
- package/source/beta-components/date-picker/react/icons.tsx +15 -0
- package/source/beta-components/{datepicker → date-picker}/react/props.ts +2 -2
- package/source/beta-components/{datepicker → date-picker}/styles.css +18 -18
- package/source/beta-components/dialog/react/icons.tsx +16 -47
- package/source/beta-components/dialog/react/props.ts +2 -2
- package/source/beta-components/dialog/styles.css +21 -21
- package/source/beta-components/{fileuploader → file-uploader}/react/FileUploader.tsx +511 -515
- package/source/beta-components/{fileuploader → file-uploader}/react/icons.tsx +7 -27
- package/source/beta-components/{fileuploader → file-uploader}/react/props.ts +2 -2
- package/source/beta-components/{fileuploader → file-uploader}/styles.css +17 -17
- package/source/beta-components/input/core/count.ts +3 -12
- package/source/beta-components/input/react/Input.tsx +219 -219
- package/source/beta-components/input/react/OtpInput.tsx +256 -256
- package/source/beta-components/input/react/icons.tsx +3 -21
- package/source/beta-components/input/react/props.ts +2 -2
- package/source/beta-components/input/styles.css +15 -15
- package/source/beta-components/modal/react/Modal.tsx +242 -238
- package/source/beta-components/modal/react/icons.tsx +1 -19
- package/source/beta-components/modal/react/props.ts +2 -2
- package/source/beta-components/modal/styles.css +17 -13
- package/source/beta-components/shared/README.md +54 -0
- package/source/beta-components/shared/__tests__/boundaries.test.ts +95 -0
- package/source/beta-components/shared/__tests__/core.test.ts +55 -0
- package/source/beta-components/shared/core/cx.ts +9 -0
- package/source/beta-components/shared/core/field.ts +35 -0
- package/source/beta-components/shared/core/text.ts +14 -0
- package/source/beta-components/shared/index.ts +7 -0
- package/source/beta-components/shared/react/Popover.tsx +147 -0
- package/source/beta-components/shared/react/icons.tsx +74 -0
- package/source/beta-components/shared/react/useControllableState.ts +42 -0
- package/source/beta-components/shared/version.json +4 -0
- package/source/beta-components/shared/version.ts +6 -0
- package/source/beta-components/spinner/react/props.ts +2 -2
- package/source/beta-components/spinner/styles.css +5 -5
- package/source/beta-components/tabs/react/Tabs.tsx +258 -260
- package/source/beta-components/tabs/styles.css +15 -15
- package/source/beta-components/textarea/core/count.ts +3 -12
- package/source/beta-components/textarea/react/Textarea.tsx +208 -209
- package/source/beta-components/textarea/react/props.ts +2 -2
- package/source/beta-components/textarea/styles.css +12 -12
- package/source/beta-components/toaster/react/icons.tsx +19 -52
- package/source/beta-components/toaster/react/props.ts +2 -2
- package/source/beta-components/toaster/styles.css +18 -18
- package/source/beta-components/datagrid/react/Popover.tsx +0 -79
- package/source/beta-components/datepicker/react/Popover.tsx +0 -87
- package/source/beta-components/datepicker/react/icons.tsx +0 -32
- /package/source/beta-components/{datagrid → data-grid}/README.md +0 -0
- /package/source/beta-components/{datagrid → data-grid}/__tests__/core.test.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/__tests__/export.test.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/columnHelper.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/columns.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/filtering.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/grid.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/index.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/rows.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/sorting.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/state.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/store.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/types.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/values.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/core/virtual.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/export/csv.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/export/download.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/export/pdf.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/export/table.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/export/xlsx.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/export/zip.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/index.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/Cell.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/ColumnMenu.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/DataGrid.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/FilterForm.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/HeaderRow.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/Pagination.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/Row.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/Toolbar.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/Viewport.tsx +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/hooks.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/keyboard.ts +0 -0
- /package/source/beta-components/{datagrid → data-grid}/react/locale.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/__tests__/core.test.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/core/calendar.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/core/format.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/core/index.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/core/types.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/index.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/react/Calendar.tsx +0 -0
- /package/source/beta-components/{datepicker → date-picker}/react/CalendarPanel.tsx +0 -0
- /package/source/beta-components/{datepicker → date-picker}/react/MonthYearPanels.tsx +0 -0
- /package/source/beta-components/{datepicker → date-picker}/react/locale.ts +0 -0
- /package/source/beta-components/{datepicker → date-picker}/react/useDatePicker.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/README.md +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/__tests__/core.test.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/core/format.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/core/index.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/core/store.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/core/transport.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/core/types.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/core/validate.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/index.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/react/FileRow.tsx +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/react/locale.ts +0 -0
- /package/source/beta-components/{fileuploader → file-uploader}/react/useFileUploader.ts +0 -0
|
@@ -1,146 +1,147 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
use,
|
|
5
|
-
useId,
|
|
6
|
-
useImperativeHandle,
|
|
7
|
-
useLayoutEffect,
|
|
8
|
-
useRef,
|
|
9
|
-
|
|
10
|
-
type
|
|
11
|
-
type
|
|
12
|
-
type
|
|
13
|
-
type
|
|
14
|
-
|
|
15
|
-
} from "react";
|
|
16
|
-
import
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
value
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
data-
|
|
101
|
-
data-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
aria-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<path className="ck-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
use,
|
|
5
|
+
useId,
|
|
6
|
+
useImperativeHandle,
|
|
7
|
+
useLayoutEffect,
|
|
8
|
+
useRef,
|
|
9
|
+
type ChangeEvent,
|
|
10
|
+
type ChangeEventHandler,
|
|
11
|
+
type InputHTMLAttributes,
|
|
12
|
+
type ReactNode,
|
|
13
|
+
type Ref,
|
|
14
|
+
} from "react";
|
|
15
|
+
import { useControllableState } from "../../shared/react/useControllableState";
|
|
16
|
+
import { describeField } from "../../shared/core/field";
|
|
17
|
+
import type { CheckboxSize, CheckedState } from "../core/types";
|
|
18
|
+
import { CheckboxGroupContext } from "./context";
|
|
19
|
+
import { cx, type CheckboxSlot } from "./props";
|
|
20
|
+
|
|
21
|
+
export interface CheckboxProps
|
|
22
|
+
extends Omit<
|
|
23
|
+
InputHTMLAttributes<HTMLInputElement>,
|
|
24
|
+
"type" | "size" | "checked" | "defaultChecked" | "onChange" | "value"
|
|
25
|
+
> {
|
|
26
|
+
/** `true`, `false` or `"indeterminate"` (controlled). */
|
|
27
|
+
checked?: CheckedState;
|
|
28
|
+
defaultChecked?: CheckedState;
|
|
29
|
+
onCheckedChange?(checked: boolean): void;
|
|
30
|
+
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
31
|
+
/** Posted with the form when checked. Inside a CheckboxGroup, the value this box adds. */
|
|
32
|
+
value?: string;
|
|
33
|
+
label?: ReactNode;
|
|
34
|
+
description?: ReactNode;
|
|
35
|
+
error?: ReactNode;
|
|
36
|
+
size?: CheckboxSize;
|
|
37
|
+
classNames?: Partial<Record<CheckboxSlot, string>>;
|
|
38
|
+
/** The `<input>` element. */
|
|
39
|
+
ref?: Ref<HTMLInputElement>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* A native checkbox, styled. It posts with forms, works with form libraries and
|
|
44
|
+
* reads as a checkbox to every assistive technology, including the mixed state.
|
|
45
|
+
*/
|
|
46
|
+
export function Checkbox(props: CheckboxProps) {
|
|
47
|
+
const {
|
|
48
|
+
ref,
|
|
49
|
+
checked: checkedProp,
|
|
50
|
+
defaultChecked = false,
|
|
51
|
+
onCheckedChange,
|
|
52
|
+
onChange,
|
|
53
|
+
value,
|
|
54
|
+
label,
|
|
55
|
+
description,
|
|
56
|
+
error,
|
|
57
|
+
size,
|
|
58
|
+
className,
|
|
59
|
+
classNames,
|
|
60
|
+
style,
|
|
61
|
+
id: idProp,
|
|
62
|
+
disabled,
|
|
63
|
+
required,
|
|
64
|
+
name,
|
|
65
|
+
"aria-describedby": describedByProp,
|
|
66
|
+
...inputProps
|
|
67
|
+
} = props;
|
|
68
|
+
|
|
69
|
+
const group = use(CheckboxGroupContext);
|
|
70
|
+
const reactId = useId();
|
|
71
|
+
const id = idProp ?? reactId;
|
|
72
|
+
const inputRef = useRef<HTMLInputElement>(null);
|
|
73
|
+
useImperativeHandle(ref, () => inputRef.current as HTMLInputElement, []);
|
|
74
|
+
|
|
75
|
+
const [own, setOwn] = useControllableState<CheckedState>(checkedProp, defaultChecked);
|
|
76
|
+
const inGroup = group !== null && value !== undefined;
|
|
77
|
+
// Inside a group the group owns the state, whoever owns it outside one.
|
|
78
|
+
const state: CheckedState = inGroup ? group.values.includes(value) : own;
|
|
79
|
+
|
|
80
|
+
// "Indeterminate" exists only as a DOM property, not an attribute.
|
|
81
|
+
useLayoutEffect(() => {
|
|
82
|
+
if (inputRef.current) inputRef.current.indeterminate = state === "indeterminate";
|
|
83
|
+
}, [state]);
|
|
84
|
+
|
|
85
|
+
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
|
86
|
+
const next = event.target.checked;
|
|
87
|
+
if (inGroup) group.toggle(value, next);
|
|
88
|
+
else setOwn(next);
|
|
89
|
+
onChange?.(event);
|
|
90
|
+
onCheckedChange?.(next);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const invalid = Boolean(error) || (group?.invalid ?? false);
|
|
94
|
+
const describedBy = describeField(id, { extra: describedByProp, description, error });
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
<div
|
|
98
|
+
className={cx("ck-root", classNames?.root, className)}
|
|
99
|
+
style={style}
|
|
100
|
+
data-size={size ?? group?.size ?? "md"}
|
|
101
|
+
data-disabled={disabled || group?.disabled || undefined}
|
|
102
|
+
data-invalid={invalid ? "" : undefined}
|
|
103
|
+
>
|
|
104
|
+
<span className={cx("ck-control", classNames?.control)}>
|
|
105
|
+
<input
|
|
106
|
+
{...inputProps}
|
|
107
|
+
ref={inputRef}
|
|
108
|
+
id={id}
|
|
109
|
+
type="checkbox"
|
|
110
|
+
className={cx("ck-input", classNames?.input)}
|
|
111
|
+
checked={state === true}
|
|
112
|
+
value={value}
|
|
113
|
+
name={name ?? group?.name}
|
|
114
|
+
disabled={disabled}
|
|
115
|
+
required={required}
|
|
116
|
+
aria-invalid={invalid || undefined}
|
|
117
|
+
aria-describedby={describedBy}
|
|
118
|
+
onChange={handleChange}
|
|
119
|
+
/>
|
|
120
|
+
<svg className="ck-icon" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
|
|
121
|
+
<path className="ck-check" d="M3.5 8.5 6.5 11.5 12.5 4.5" pathLength={1} />
|
|
122
|
+
<path className="ck-dash" d="M4 8h8" />
|
|
123
|
+
</svg>
|
|
124
|
+
</span>
|
|
125
|
+
|
|
126
|
+
{(label || description || error) && (
|
|
127
|
+
<span className="ck-text">
|
|
128
|
+
{label && (
|
|
129
|
+
<label htmlFor={id} className={cx("ck-label", classNames?.label)} data-required={required || undefined}>
|
|
130
|
+
{label}
|
|
131
|
+
</label>
|
|
132
|
+
)}
|
|
133
|
+
{description && (
|
|
134
|
+
<span id={`${id}-description`} className={cx("ck-description", classNames?.description)}>
|
|
135
|
+
{description}
|
|
136
|
+
</span>
|
|
137
|
+
)}
|
|
138
|
+
{error && (
|
|
139
|
+
<span id={`${id}-error`} className={cx("ck-error", classNames?.error)} role="alert">
|
|
140
|
+
{error}
|
|
141
|
+
</span>
|
|
142
|
+
)}
|
|
143
|
+
</span>
|
|
144
|
+
)}
|
|
145
|
+
</div>
|
|
146
|
+
);
|
|
147
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useId, useMemo,
|
|
3
|
+
import { useId, useMemo, type CSSProperties, type ReactNode } from "react";
|
|
4
|
+
import { useControllableState } from "../../shared/react/useControllableState";
|
|
5
|
+
import { describeField } from "../../shared/core/field";
|
|
4
6
|
import { groupState, toggleAll, toggleValue } from "../core/group";
|
|
5
7
|
import type { CheckboxLocaleText, CheckboxOption, CheckboxSize } from "../core/types";
|
|
6
8
|
import { Checkbox } from "./Checkbox";
|
|
@@ -63,12 +65,11 @@ export function CheckboxGroup(props: CheckboxGroupProps) {
|
|
|
63
65
|
const reactId = useId();
|
|
64
66
|
const id = idProp ?? reactId;
|
|
65
67
|
const text = useMemo(() => ({ ...defaultCheckboxText, ...localeText }), [localeText]);
|
|
66
|
-
const [
|
|
67
|
-
const values = value ?? internal;
|
|
68
|
+
const [values, setValues] = useControllableState<string[]>(value, defaultValue ?? []);
|
|
68
69
|
|
|
69
70
|
const context = useMemo<CheckboxGroupContextValue>(() => {
|
|
70
71
|
const commit = (next: string[]) => {
|
|
71
|
-
|
|
72
|
+
setValues(next);
|
|
72
73
|
onValueChange?.(next);
|
|
73
74
|
};
|
|
74
75
|
return {
|
|
@@ -79,11 +80,10 @@ export function CheckboxGroup(props: CheckboxGroupProps) {
|
|
|
79
80
|
invalid: Boolean(error),
|
|
80
81
|
size,
|
|
81
82
|
};
|
|
82
|
-
}, [values,
|
|
83
|
+
}, [values, setValues, onValueChange, name, disabled, error, size]);
|
|
83
84
|
|
|
84
85
|
const showSelectAll = Boolean(selectAll) && options !== undefined && options.length > 0;
|
|
85
|
-
const describedBy =
|
|
86
|
-
cx(description ? `${id}-description` : "", error ? `${id}-error` : "") || undefined;
|
|
86
|
+
const describedBy = describeField(id, { description, error });
|
|
87
87
|
|
|
88
88
|
return (
|
|
89
89
|
<fieldset
|
|
@@ -117,7 +117,7 @@ export function CheckboxGroup(props: CheckboxGroupProps) {
|
|
|
117
117
|
checked={groupState(values, options)}
|
|
118
118
|
onCheckedChange={() => {
|
|
119
119
|
const next = toggleAll(values, options);
|
|
120
|
-
|
|
120
|
+
setValues(next);
|
|
121
121
|
onValueChange?.(next);
|
|
122
122
|
}}
|
|
123
123
|
/>
|
|
@@ -2,5 +2,5 @@ export type CheckboxSlot = "root" | "control" | "input" | "label" | "description
|
|
|
2
2
|
|
|
3
3
|
export type CheckboxGroupSlot = "root" | "legend" | "description" | "items" | "error";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
// Shared with every other component, so class handling cannot drift.
|
|
6
|
+
export { cx } from "../../shared/core/cx";
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Checkbox and CheckboxGroup styles.
|
|
3
3
|
*
|
|
4
4
|
* The box is the native <input> with `appearance: none`, so it keeps native
|
|
5
|
-
* behavior. Tokens read the
|
|
6
|
-
* ancestor. Rules live in the `components` layer, so utility classes passed
|
|
5
|
+
* behavior. Tokens read the shared --gbs-* variables when they are set on an
|
|
6
|
+
* ancestor (set them on :root to theme every component at once). Rules live in the `components` layer, so utility classes passed
|
|
7
7
|
* through `className` / `classNames` override them.
|
|
8
8
|
*/
|
|
9
9
|
@layer theme, base, components, utilities;
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
@layer components {
|
|
12
12
|
.ck-root,
|
|
13
13
|
.ck-group {
|
|
14
|
-
--ck-fg: var(--dg-fg, light-dark(#18181b, #f4f4f5));
|
|
15
|
-
--ck-muted: var(--dg-muted, light-dark(#71717a, #a1a1aa));
|
|
16
|
-
--ck-border: light-dark(#a1a1aa, #52525b);
|
|
17
|
-
--ck-input-bg: var(--dg-input-bg, light-dark(#ffffff, #121216));
|
|
18
|
-
--ck-accent: var(--dg-accent, light-dark(#2563eb, #60a5fa));
|
|
19
|
-
--ck-accent-fg: var(--dg-accent-fg, light-dark(#ffffff, #0b1220));
|
|
20
|
-
--ck-focus: var(--dg-focus, light-dark(#2563eb, #60a5fa));
|
|
21
|
-
--ck-danger: var(--dg-danger, light-dark(#dc2626, #f87171));
|
|
22
|
-
--ck-font-size: var(--dg-font-size, 13px);
|
|
14
|
+
--ck-fg: var(--gbs-fg, var(--dg-fg, light-dark(#18181b, #f4f4f5)));
|
|
15
|
+
--ck-muted: var(--gbs-muted, var(--dg-muted, light-dark(#71717a, #a1a1aa)));
|
|
16
|
+
--ck-border: var(--gbs-border-control, light-dark(#a1a1aa, #52525b));
|
|
17
|
+
--ck-input-bg: var(--gbs-input-bg, var(--dg-input-bg, light-dark(#ffffff, #121216)));
|
|
18
|
+
--ck-accent: var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa)));
|
|
19
|
+
--ck-accent-fg: var(--gbs-accent-fg, var(--dg-accent-fg, light-dark(#ffffff, #0b1220)));
|
|
20
|
+
--ck-focus: var(--gbs-focus, var(--dg-focus, light-dark(#2563eb, #60a5fa)));
|
|
21
|
+
--ck-danger: var(--gbs-danger, var(--dg-danger, light-dark(#dc2626, #f87171)));
|
|
22
|
+
--ck-font-size: var(--gbs-font-size, var(--dg-font-size, 13px));
|
|
23
23
|
--ck-size: 16px;
|
|
24
24
|
--ck-radius: 4px;
|
|
25
25
|
|
|
@@ -17,9 +17,9 @@ import { MultiSelect, Select } from "@/components/combobox";
|
|
|
17
17
|
import "@/components/combobox/styles.css";
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
The stylesheet
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
The stylesheet reads the shared `--gbs-*` variables when you set them on
|
|
21
|
+
`:root`, so every component in the library shares one theme, and falls back to
|
|
22
|
+
the same default palette otherwise.
|
|
23
23
|
|
|
24
24
|
## Basic usage
|
|
25
25
|
|