@telepix-lab/telepix-ui 0.7.0 → 0.7.1
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/cjs/button/index.d.ts +2 -2
- package/dist/cjs/client.js +353 -238
- package/dist/cjs/index.js +86 -37
- package/dist/cjs/input/hooks/useFocusVisibleMode.d.ts +9 -0
- package/dist/cjs/interactive-list-item/index.d.ts +1 -1
- package/dist/cjs/notify-item/index.d.ts +1 -0
- package/dist/cjs/radio-group/index.d.ts +1 -1
- package/dist/cjs/select/index.d.ts +4 -4
- package/dist/cjs/table/index.d.ts +1 -1
- package/dist/client.d.ts +5 -5
- package/dist/esm/button/index.d.ts +2 -2
- package/dist/esm/client.js +354 -239
- package/dist/esm/index.js +87 -38
- package/dist/esm/input/hooks/useFocusVisibleMode.d.ts +9 -0
- package/dist/esm/interactive-list-item/index.d.ts +1 -1
- package/dist/esm/notify-item/index.d.ts +1 -0
- package/dist/esm/radio-group/index.d.ts +1 -1
- package/dist/esm/select/index.d.ts +4 -4
- package/dist/esm/table/index.d.ts +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/styles.css +1 -1
- package/package.json +2 -1
package/dist/esm/client.js
CHANGED
|
@@ -1,11 +1,159 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default, {
|
|
3
|
+
import React__default, { forwardRef, createElement, useState, useLayoutEffect, createContext, useId as useId$1, useRef, useContext, useCallback, useEffect, Fragment as Fragment$1, useMemo } from 'react';
|
|
4
4
|
import * as ReactDOM from 'react-dom';
|
|
5
5
|
import ReactDOM__default from 'react-dom';
|
|
6
|
+
import { id } from 'react-day-picker/locale';
|
|
6
7
|
import { DayPicker, getDefaultClassNames } from 'react-day-picker';
|
|
7
8
|
import 'react-day-picker/style.css';
|
|
8
9
|
|
|
10
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
11
|
+
if (source == null) return {};
|
|
12
|
+
var target = {};
|
|
13
|
+
var sourceKeys = Object.keys(source);
|
|
14
|
+
var key, i;
|
|
15
|
+
|
|
16
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
17
|
+
key = sourceKeys[i];
|
|
18
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
19
|
+
target[key] = source[key];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return target;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var _excluded$F = ["color"];
|
|
26
|
+
var BoxIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
27
|
+
var _ref$color = _ref.color,
|
|
28
|
+
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
29
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$F);
|
|
30
|
+
|
|
31
|
+
return createElement("svg", Object.assign({
|
|
32
|
+
width: "15",
|
|
33
|
+
height: "15",
|
|
34
|
+
viewBox: "0 0 15 15",
|
|
35
|
+
fill: "none",
|
|
36
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
37
|
+
}, props, {
|
|
38
|
+
ref: forwardedRef
|
|
39
|
+
}), createElement("path", {
|
|
40
|
+
d: "M12.5 2H2.5C2.22386 2 2 2.22386 2 2.5V12.5C2 12.7761 2.22386 13 2.5 13H12.5C12.7761 13 13 12.7761 13 12.5V2.5C13 2.22386 12.7761 2 12.5 2ZM2.5 1C1.67157 1 1 1.67157 1 2.5V12.5C1 13.3284 1.67157 14 2.5 14H12.5C13.3284 14 14 13.3284 14 12.5V2.5C14 1.67157 13.3284 1 12.5 1H2.5Z",
|
|
41
|
+
fill: color,
|
|
42
|
+
fillRule: "evenodd",
|
|
43
|
+
clipRule: "evenodd"
|
|
44
|
+
}));
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
var _excluded$N = ["color"];
|
|
48
|
+
var CaretDownIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
49
|
+
var _ref$color = _ref.color,
|
|
50
|
+
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
51
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$N);
|
|
52
|
+
|
|
53
|
+
return createElement("svg", Object.assign({
|
|
54
|
+
width: "15",
|
|
55
|
+
height: "15",
|
|
56
|
+
viewBox: "0 0 15 15",
|
|
57
|
+
fill: "none",
|
|
58
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
59
|
+
}, props, {
|
|
60
|
+
ref: forwardedRef
|
|
61
|
+
}), createElement("path", {
|
|
62
|
+
d: "M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",
|
|
63
|
+
fill: color,
|
|
64
|
+
fillRule: "evenodd",
|
|
65
|
+
clipRule: "evenodd"
|
|
66
|
+
}));
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
var _excluded$_ = ["color"];
|
|
70
|
+
var CircleIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
71
|
+
var _ref$color = _ref.color,
|
|
72
|
+
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
73
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$_);
|
|
74
|
+
|
|
75
|
+
return createElement("svg", Object.assign({
|
|
76
|
+
width: "15",
|
|
77
|
+
height: "15",
|
|
78
|
+
viewBox: "0 0 15 15",
|
|
79
|
+
fill: "none",
|
|
80
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
81
|
+
}, props, {
|
|
82
|
+
ref: forwardedRef
|
|
83
|
+
}), createElement("path", {
|
|
84
|
+
d: "M0.877075 7.49991C0.877075 3.84222 3.84222 0.877075 7.49991 0.877075C11.1576 0.877075 14.1227 3.84222 14.1227 7.49991C14.1227 11.1576 11.1576 14.1227 7.49991 14.1227C3.84222 14.1227 0.877075 11.1576 0.877075 7.49991ZM7.49991 1.82708C4.36689 1.82708 1.82708 4.36689 1.82708 7.49991C1.82708 10.6329 4.36689 13.1727 7.49991 13.1727C10.6329 13.1727 13.1727 10.6329 13.1727 7.49991C13.1727 4.36689 10.6329 1.82708 7.49991 1.82708Z",
|
|
85
|
+
fill: color,
|
|
86
|
+
fillRule: "evenodd",
|
|
87
|
+
clipRule: "evenodd"
|
|
88
|
+
}));
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
var _excluded$$ = ["color"];
|
|
92
|
+
var CircleBackslashIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
93
|
+
var _ref$color = _ref.color,
|
|
94
|
+
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
95
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$$);
|
|
96
|
+
|
|
97
|
+
return createElement("svg", Object.assign({
|
|
98
|
+
width: "15",
|
|
99
|
+
height: "15",
|
|
100
|
+
viewBox: "0 0 15 15",
|
|
101
|
+
fill: "none",
|
|
102
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
103
|
+
}, props, {
|
|
104
|
+
ref: forwardedRef
|
|
105
|
+
}), createElement("path", {
|
|
106
|
+
d: "M7.49991 0.877075C3.84222 0.877075 0.877075 3.84222 0.877075 7.49991C0.877075 11.1576 3.84222 14.1227 7.49991 14.1227C11.1576 14.1227 14.1227 11.1576 14.1227 7.49991C14.1227 3.84222 11.1576 0.877075 7.49991 0.877075ZM3.85768 3.15057C4.84311 2.32448 6.11342 1.82708 7.49991 1.82708C10.6329 1.82708 13.1727 4.36689 13.1727 7.49991C13.1727 8.88638 12.6753 10.1567 11.8492 11.1421L3.85768 3.15057ZM3.15057 3.85768C2.32448 4.84311 1.82708 6.11342 1.82708 7.49991C1.82708 10.6329 4.36689 13.1727 7.49991 13.1727C8.88638 13.1727 10.1567 12.6753 11.1421 11.8492L3.15057 3.85768Z",
|
|
107
|
+
fill: color,
|
|
108
|
+
fillRule: "evenodd",
|
|
109
|
+
clipRule: "evenodd"
|
|
110
|
+
}));
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
var _excluded$33 = ["color"];
|
|
114
|
+
var MagnifyingGlassIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
115
|
+
var _ref$color = _ref.color,
|
|
116
|
+
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
117
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$33);
|
|
118
|
+
|
|
119
|
+
return createElement("svg", Object.assign({
|
|
120
|
+
width: "15",
|
|
121
|
+
height: "15",
|
|
122
|
+
viewBox: "0 0 15 15",
|
|
123
|
+
fill: "none",
|
|
124
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
125
|
+
}, props, {
|
|
126
|
+
ref: forwardedRef
|
|
127
|
+
}), createElement("path", {
|
|
128
|
+
d: "M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",
|
|
129
|
+
fill: color,
|
|
130
|
+
fillRule: "evenodd",
|
|
131
|
+
clipRule: "evenodd"
|
|
132
|
+
}));
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
var _excluded$3C = ["color"];
|
|
136
|
+
var RadiobuttonIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
137
|
+
var _ref$color = _ref.color,
|
|
138
|
+
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
139
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$3C);
|
|
140
|
+
|
|
141
|
+
return createElement("svg", Object.assign({
|
|
142
|
+
width: "15",
|
|
143
|
+
height: "15",
|
|
144
|
+
viewBox: "0 0 15 15",
|
|
145
|
+
fill: "none",
|
|
146
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
147
|
+
}, props, {
|
|
148
|
+
ref: forwardedRef
|
|
149
|
+
}), createElement("path", {
|
|
150
|
+
d: "M7.49985 0.877045C3.84216 0.877045 0.877014 3.84219 0.877014 7.49988C0.877014 11.1575 3.84216 14.1227 7.49985 14.1227C11.1575 14.1227 14.1227 11.1575 14.1227 7.49988C14.1227 3.84219 11.1575 0.877045 7.49985 0.877045ZM1.82701 7.49988C1.82701 4.36686 4.36683 1.82704 7.49985 1.82704C10.6328 1.82704 13.1727 4.36686 13.1727 7.49988C13.1727 10.6329 10.6328 13.1727 7.49985 13.1727C4.36683 13.1727 1.82701 10.6329 1.82701 7.49988ZM7.49999 9.49999C8.60456 9.49999 9.49999 8.60456 9.49999 7.49999C9.49999 6.39542 8.60456 5.49999 7.49999 5.49999C6.39542 5.49999 5.49999 6.39542 5.49999 7.49999C5.49999 8.60456 6.39542 9.49999 7.49999 9.49999Z",
|
|
151
|
+
fill: color,
|
|
152
|
+
fillRule: "evenodd",
|
|
153
|
+
clipRule: "evenodd"
|
|
154
|
+
}));
|
|
155
|
+
});
|
|
156
|
+
|
|
9
157
|
// packages/react/compose-refs/src/compose-refs.tsx
|
|
10
158
|
function setRef(ref, value) {
|
|
11
159
|
if (typeof ref === "function") {
|
|
@@ -8600,156 +8748,6 @@ var Portal = TooltipPortal;
|
|
|
8600
8748
|
var Content2 = TooltipContent$1;
|
|
8601
8749
|
var Arrow2 = TooltipArrow$1;
|
|
8602
8750
|
|
|
8603
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
8604
|
-
if (source == null) return {};
|
|
8605
|
-
var target = {};
|
|
8606
|
-
var sourceKeys = Object.keys(source);
|
|
8607
|
-
var key, i;
|
|
8608
|
-
|
|
8609
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
8610
|
-
key = sourceKeys[i];
|
|
8611
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
8612
|
-
target[key] = source[key];
|
|
8613
|
-
}
|
|
8614
|
-
|
|
8615
|
-
return target;
|
|
8616
|
-
}
|
|
8617
|
-
|
|
8618
|
-
var _excluded$F = ["color"];
|
|
8619
|
-
var BoxIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
8620
|
-
var _ref$color = _ref.color,
|
|
8621
|
-
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
8622
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$F);
|
|
8623
|
-
|
|
8624
|
-
return createElement("svg", Object.assign({
|
|
8625
|
-
width: "15",
|
|
8626
|
-
height: "15",
|
|
8627
|
-
viewBox: "0 0 15 15",
|
|
8628
|
-
fill: "none",
|
|
8629
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
8630
|
-
}, props, {
|
|
8631
|
-
ref: forwardedRef
|
|
8632
|
-
}), createElement("path", {
|
|
8633
|
-
d: "M12.5 2H2.5C2.22386 2 2 2.22386 2 2.5V12.5C2 12.7761 2.22386 13 2.5 13H12.5C12.7761 13 13 12.7761 13 12.5V2.5C13 2.22386 12.7761 2 12.5 2ZM2.5 1C1.67157 1 1 1.67157 1 2.5V12.5C1 13.3284 1.67157 14 2.5 14H12.5C13.3284 14 14 13.3284 14 12.5V2.5C14 1.67157 13.3284 1 12.5 1H2.5Z",
|
|
8634
|
-
fill: color,
|
|
8635
|
-
fillRule: "evenodd",
|
|
8636
|
-
clipRule: "evenodd"
|
|
8637
|
-
}));
|
|
8638
|
-
});
|
|
8639
|
-
|
|
8640
|
-
var _excluded$N = ["color"];
|
|
8641
|
-
var CaretDownIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
8642
|
-
var _ref$color = _ref.color,
|
|
8643
|
-
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
8644
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$N);
|
|
8645
|
-
|
|
8646
|
-
return createElement("svg", Object.assign({
|
|
8647
|
-
width: "15",
|
|
8648
|
-
height: "15",
|
|
8649
|
-
viewBox: "0 0 15 15",
|
|
8650
|
-
fill: "none",
|
|
8651
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
8652
|
-
}, props, {
|
|
8653
|
-
ref: forwardedRef
|
|
8654
|
-
}), createElement("path", {
|
|
8655
|
-
d: "M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",
|
|
8656
|
-
fill: color,
|
|
8657
|
-
fillRule: "evenodd",
|
|
8658
|
-
clipRule: "evenodd"
|
|
8659
|
-
}));
|
|
8660
|
-
});
|
|
8661
|
-
|
|
8662
|
-
var _excluded$_ = ["color"];
|
|
8663
|
-
var CircleIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
8664
|
-
var _ref$color = _ref.color,
|
|
8665
|
-
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
8666
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$_);
|
|
8667
|
-
|
|
8668
|
-
return createElement("svg", Object.assign({
|
|
8669
|
-
width: "15",
|
|
8670
|
-
height: "15",
|
|
8671
|
-
viewBox: "0 0 15 15",
|
|
8672
|
-
fill: "none",
|
|
8673
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
8674
|
-
}, props, {
|
|
8675
|
-
ref: forwardedRef
|
|
8676
|
-
}), createElement("path", {
|
|
8677
|
-
d: "M0.877075 7.49991C0.877075 3.84222 3.84222 0.877075 7.49991 0.877075C11.1576 0.877075 14.1227 3.84222 14.1227 7.49991C14.1227 11.1576 11.1576 14.1227 7.49991 14.1227C3.84222 14.1227 0.877075 11.1576 0.877075 7.49991ZM7.49991 1.82708C4.36689 1.82708 1.82708 4.36689 1.82708 7.49991C1.82708 10.6329 4.36689 13.1727 7.49991 13.1727C10.6329 13.1727 13.1727 10.6329 13.1727 7.49991C13.1727 4.36689 10.6329 1.82708 7.49991 1.82708Z",
|
|
8678
|
-
fill: color,
|
|
8679
|
-
fillRule: "evenodd",
|
|
8680
|
-
clipRule: "evenodd"
|
|
8681
|
-
}));
|
|
8682
|
-
});
|
|
8683
|
-
|
|
8684
|
-
var _excluded$$ = ["color"];
|
|
8685
|
-
var CircleBackslashIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
8686
|
-
var _ref$color = _ref.color,
|
|
8687
|
-
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
8688
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$$);
|
|
8689
|
-
|
|
8690
|
-
return createElement("svg", Object.assign({
|
|
8691
|
-
width: "15",
|
|
8692
|
-
height: "15",
|
|
8693
|
-
viewBox: "0 0 15 15",
|
|
8694
|
-
fill: "none",
|
|
8695
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
8696
|
-
}, props, {
|
|
8697
|
-
ref: forwardedRef
|
|
8698
|
-
}), createElement("path", {
|
|
8699
|
-
d: "M7.49991 0.877075C3.84222 0.877075 0.877075 3.84222 0.877075 7.49991C0.877075 11.1576 3.84222 14.1227 7.49991 14.1227C11.1576 14.1227 14.1227 11.1576 14.1227 7.49991C14.1227 3.84222 11.1576 0.877075 7.49991 0.877075ZM3.85768 3.15057C4.84311 2.32448 6.11342 1.82708 7.49991 1.82708C10.6329 1.82708 13.1727 4.36689 13.1727 7.49991C13.1727 8.88638 12.6753 10.1567 11.8492 11.1421L3.85768 3.15057ZM3.15057 3.85768C2.32448 4.84311 1.82708 6.11342 1.82708 7.49991C1.82708 10.6329 4.36689 13.1727 7.49991 13.1727C8.88638 13.1727 10.1567 12.6753 11.1421 11.8492L3.15057 3.85768Z",
|
|
8700
|
-
fill: color,
|
|
8701
|
-
fillRule: "evenodd",
|
|
8702
|
-
clipRule: "evenodd"
|
|
8703
|
-
}));
|
|
8704
|
-
});
|
|
8705
|
-
|
|
8706
|
-
var _excluded$33 = ["color"];
|
|
8707
|
-
var MagnifyingGlassIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
8708
|
-
var _ref$color = _ref.color,
|
|
8709
|
-
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
8710
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$33);
|
|
8711
|
-
|
|
8712
|
-
return createElement("svg", Object.assign({
|
|
8713
|
-
width: "15",
|
|
8714
|
-
height: "15",
|
|
8715
|
-
viewBox: "0 0 15 15",
|
|
8716
|
-
fill: "none",
|
|
8717
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
8718
|
-
}, props, {
|
|
8719
|
-
ref: forwardedRef
|
|
8720
|
-
}), createElement("path", {
|
|
8721
|
-
d: "M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",
|
|
8722
|
-
fill: color,
|
|
8723
|
-
fillRule: "evenodd",
|
|
8724
|
-
clipRule: "evenodd"
|
|
8725
|
-
}));
|
|
8726
|
-
});
|
|
8727
|
-
|
|
8728
|
-
var _excluded$3C = ["color"];
|
|
8729
|
-
var RadiobuttonIcon = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
|
|
8730
|
-
var _ref$color = _ref.color,
|
|
8731
|
-
color = _ref$color === void 0 ? 'currentColor' : _ref$color,
|
|
8732
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$3C);
|
|
8733
|
-
|
|
8734
|
-
return createElement("svg", Object.assign({
|
|
8735
|
-
width: "15",
|
|
8736
|
-
height: "15",
|
|
8737
|
-
viewBox: "0 0 15 15",
|
|
8738
|
-
fill: "none",
|
|
8739
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
8740
|
-
}, props, {
|
|
8741
|
-
ref: forwardedRef
|
|
8742
|
-
}), createElement("path", {
|
|
8743
|
-
d: "M7.49985 0.877045C3.84216 0.877045 0.877014 3.84219 0.877014 7.49988C0.877014 11.1575 3.84216 14.1227 7.49985 14.1227C11.1575 14.1227 14.1227 11.1575 14.1227 7.49988C14.1227 3.84219 11.1575 0.877045 7.49985 0.877045ZM1.82701 7.49988C1.82701 4.36686 4.36683 1.82704 7.49985 1.82704C10.6328 1.82704 13.1727 4.36686 13.1727 7.49988C13.1727 10.6329 10.6328 13.1727 7.49985 13.1727C4.36683 13.1727 1.82701 10.6329 1.82701 7.49988ZM7.49999 9.49999C8.60456 9.49999 9.49999 8.60456 9.49999 7.49999C9.49999 6.39542 8.60456 5.49999 7.49999 5.49999C6.39542 5.49999 5.49999 6.39542 5.49999 7.49999C5.49999 8.60456 6.39542 9.49999 7.49999 9.49999Z",
|
|
8744
|
-
fill: color,
|
|
8745
|
-
fillRule: "evenodd",
|
|
8746
|
-
clipRule: "evenodd"
|
|
8747
|
-
}));
|
|
8748
|
-
});
|
|
8749
|
-
|
|
8750
|
-
const RADIO_GROUP_ORIENTAIONS = {
|
|
8751
|
-
HORIZONTAL: "horizontal"};
|
|
8752
|
-
|
|
8753
8751
|
function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
|
|
8754
8752
|
|
|
8755
8753
|
const CLASS_PART_SEPARATOR = '-';
|
|
@@ -12052,28 +12050,28 @@ function cn(...inputs) {
|
|
|
12052
12050
|
const StateColorContainer = ({ groupName = "state", isInverted, className, }) => {
|
|
12053
12051
|
const fillClassMap = {
|
|
12054
12052
|
wrapper: {
|
|
12055
|
-
normal: "group-hover/wrapper:bg-fill-hovered bg-fill-default group-active/wrapper:bg-fill-pressed group-
|
|
12056
|
-
invert: "group-hover/wrapper:bg-fill-invert-hovered group-active/wrapper:bg-fill-invert-pressed bg-fill-invert-default group-
|
|
12053
|
+
normal: "group-hover/wrapper:bg-fill-hovered bg-fill-default group-active/wrapper:bg-fill-pressed group-data-[focused=true]/wrapper:bg-fill-selected",
|
|
12054
|
+
invert: "group-hover/wrapper:bg-fill-invert-hovered group-active/wrapper:bg-fill-invert-pressed bg-fill-invert-default group-data-[focused=true]/wrapper:bg-fill-invert-selected",
|
|
12057
12055
|
},
|
|
12058
12056
|
item: {
|
|
12059
|
-
normal: "group-hover/item:bg-fill-hovered bg-fill-default group-active/item:bg-fill-pressed group-
|
|
12060
|
-
invert: "group-hover/item:bg-fill-invert-hovered group-active/item:bg-fill-invert-pressed bg-fill-invert-default group-
|
|
12057
|
+
normal: "group-hover/item:bg-fill-hovered bg-fill-default group-active/item:bg-fill-pressed group-data-[focused=true]/item:bg-fill-selected",
|
|
12058
|
+
invert: "group-hover/item:bg-fill-invert-hovered group-active/item:bg-fill-invert-pressed bg-fill-invert-default group-data-[focused=true]/item:bg-fill-invert-selected",
|
|
12061
12059
|
},
|
|
12062
12060
|
option: {
|
|
12063
|
-
normal: "group-hover/option:bg-fill-hovered bg-fill-default group-active/option:bg-fill-pressed group-
|
|
12064
|
-
invert: "group-hover/option:bg-fill-invert-hovered group-active/option:bg-fill-invert-pressed bg-fill-invert-default group-
|
|
12061
|
+
normal: "group-hover/option:bg-fill-hovered bg-fill-default group-active/option:bg-fill-pressed group-data-[focused=true]/option:bg-fill-selected",
|
|
12062
|
+
invert: "group-hover/option:bg-fill-invert-hovered group-active/option:bg-fill-invert-pressed bg-fill-invert-default group-data-[focused=true]/option:bg-fill-invert-selected",
|
|
12065
12063
|
},
|
|
12066
12064
|
tab: {
|
|
12067
|
-
normal: "group-hover/tab:bg-fill-hovered bg-fill-default group-active/tab:bg-fill-pressed group-
|
|
12068
|
-
invert: "group-hover/tab:bg-fill-invert-hovered group-active/tab:bg-fill-invert-pressed bg-fill-invert-default group-
|
|
12065
|
+
normal: "group-hover/tab:bg-fill-hovered bg-fill-default group-active/tab:bg-fill-pressed group-data-[focused=true]/tab:bg-fill-selected",
|
|
12066
|
+
invert: "group-hover/tab:bg-fill-invert-hovered group-active/tab:bg-fill-invert-pressed bg-fill-invert-default group-data-[focused=true]/tab:bg-fill-invert-selected",
|
|
12069
12067
|
},
|
|
12070
12068
|
chip: {
|
|
12071
|
-
normal: "group-hover/chip:bg-fill-hovered bg-fill-default group-active/chip:bg-fill-pressed group-
|
|
12072
|
-
invert: "group-hover/chip:bg-fill-invert-hovered group-active/chip:bg-fill-invert-pressed bg-fill-invert-default group-
|
|
12069
|
+
normal: "group-hover/chip:bg-fill-hovered bg-fill-default group-active/chip:bg-fill-pressed group-data-[focused=true]/chip:bg-fill-selected",
|
|
12070
|
+
invert: "group-hover/chip:bg-fill-invert-hovered group-active/chip:bg-fill-invert-pressed bg-fill-invert-default group-data-[focused=true]/chip:bg-fill-invert-selected",
|
|
12073
12071
|
},
|
|
12074
12072
|
state: {
|
|
12075
|
-
normal: "group-hover/state:bg-fill-hovered bg-fill-default group-active/state:bg-fill-pressed group-
|
|
12076
|
-
invert: "group-hover/state:bg-fill-invert-hovered group-active/state:bg-fill-invert-pressed bg-fill-invert-default group-
|
|
12073
|
+
normal: "group-hover/state:bg-fill-hovered bg-fill-default group-active/state:bg-fill-pressed group-data-[focused=true]/state:bg-fill-selected",
|
|
12074
|
+
invert: "group-hover/state:bg-fill-invert-hovered group-active/state:bg-fill-invert-pressed bg-fill-invert-default group-data-[focused=true]/state:bg-fill-invert-selected",
|
|
12077
12075
|
},
|
|
12078
12076
|
};
|
|
12079
12077
|
const group = groupName || "state";
|
|
@@ -12082,6 +12080,9 @@ const StateColorContainer = ({ groupName = "state", isInverted, className, }) =>
|
|
|
12082
12080
|
return (jsx("div", { className: cn("absolute left-0 top-0 right-0 bottom-0 inset-0 pointer-events-none z-0 rounded-[inherit]", actionClass, className) }));
|
|
12083
12081
|
};
|
|
12084
12082
|
|
|
12083
|
+
const RADIO_GROUP_ORIENTAIONS = {
|
|
12084
|
+
HORIZONTAL: "horizontal"};
|
|
12085
|
+
|
|
12085
12086
|
const RadioGroupContext = createContext({ value: "", disabled: false });
|
|
12086
12087
|
/**
|
|
12087
12088
|
* 라디오 버튼 그룹을 생성하는 컴포넌트입니다.<br/>
|
|
@@ -12107,9 +12108,42 @@ const RadioGroup = forwardRef(({ className, orientation = "vertical", ...rest },
|
|
|
12107
12108
|
const RadioItem = forwardRef(({ label, labelClassName, wrapperClassName, ...rest }, ref) => {
|
|
12108
12109
|
const { id, value, disabled, className, ...restProps } = rest;
|
|
12109
12110
|
const randomId = id ?? useId$1();
|
|
12111
|
+
const internalRef = useRef(null);
|
|
12110
12112
|
const isSelected = useContext(RadioGroupContext).value === value;
|
|
12111
12113
|
const isDisabled = useContext(RadioGroupContext).disabled || disabled || false;
|
|
12112
|
-
|
|
12114
|
+
// ref를 callback ref로 병합
|
|
12115
|
+
const setRef = useCallback((node) => {
|
|
12116
|
+
internalRef.current = node;
|
|
12117
|
+
if (typeof ref === "function") {
|
|
12118
|
+
ref(node);
|
|
12119
|
+
}
|
|
12120
|
+
else if (ref) {
|
|
12121
|
+
ref.current = node;
|
|
12122
|
+
}
|
|
12123
|
+
}, [ref]);
|
|
12124
|
+
// 모든 radio item이 Tab 키로 focus를 받을 수 있도록 tabIndex={0} 설정
|
|
12125
|
+
// Radix UI가 내부적으로 tabindex를 관리할 수 있으므로 MutationObserver로 변경 감지
|
|
12126
|
+
useEffect(() => {
|
|
12127
|
+
const el = internalRef.current;
|
|
12128
|
+
if (!el || isDisabled)
|
|
12129
|
+
return;
|
|
12130
|
+
// 포커스 가능하도록 강제
|
|
12131
|
+
el.tabIndex = 0;
|
|
12132
|
+
// Radix가 roving focus로 tabindex를 변경하는 상황 되돌리기
|
|
12133
|
+
const observer = new MutationObserver((mutations) => {
|
|
12134
|
+
for (const m of mutations) {
|
|
12135
|
+
if (m.attributeName === "tabindex" && el.tabIndex !== 0) {
|
|
12136
|
+
el.tabIndex = 0;
|
|
12137
|
+
}
|
|
12138
|
+
}
|
|
12139
|
+
});
|
|
12140
|
+
observer.observe(el, {
|
|
12141
|
+
attributes: true,
|
|
12142
|
+
attributeFilter: ["tabindex"],
|
|
12143
|
+
});
|
|
12144
|
+
return () => observer.disconnect();
|
|
12145
|
+
}, [isDisabled]);
|
|
12146
|
+
return (jsxs("div", { className: cn("flex items-center gap-1.5 cursor-pointer bg-transparent border-none py-1 pr-2 group/state relative", wrapperClassName), children: [jsx(Item2, { ...restProps, id: randomId, ref: setRef, value: value, disabled: isDisabled, tabIndex: isDisabled ? -1 : 0, className: cn("bg-transparent border-none p-1.5 flex items-center outline-none justify-center cursor-pointer focus-visible:outline focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-border-focused rounded-full", className), children: isDisabled ? (jsx(CircleBackslashIcon, { className: "text-comp-disabled" })) : isSelected ? (jsx(RadiobuttonIcon, { className: "text-comp-mono-default" })) : (jsx(CircleIcon, { className: "text-comp-mono-default" })) }), label && (jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", isDisabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: randomId, children: label })), jsx(StateColorContainer, { className: cn(isDisabled &&
|
|
12113
12147
|
"bg-fill-disabled group-hover/state:bg-fill-disabled group-active/state:bg-fill-disabled") })] }));
|
|
12114
12148
|
});
|
|
12115
12149
|
RadioGroup.displayName = "RadioGroup";
|
|
@@ -12334,7 +12368,13 @@ const Checkbox = forwardRef(({ label, labelClassName, wrapperClassName, ...rest
|
|
|
12334
12368
|
const newValue = !currentChecked;
|
|
12335
12369
|
onCheckedChange(newValue);
|
|
12336
12370
|
};
|
|
12337
|
-
|
|
12371
|
+
const getAriaChecked = (defaultChecked, checked, isChecked) => {
|
|
12372
|
+
const value = defaultChecked ? checked : isChecked;
|
|
12373
|
+
if (value === "indeterminate")
|
|
12374
|
+
return "mixed";
|
|
12375
|
+
return value;
|
|
12376
|
+
};
|
|
12377
|
+
return (jsxs("div", { className: cn("flex items-center gap-2.5 pl-1.5 py-1 relative group/state", !label ? "pr-1.5 rounded-sm" : "pr-3 rounded-lg", !disabled && "cursor-pointer", wrapperClassName), onClick: handleWrapperClick, children: [jsx(Checkbox$1, { ref: ref, id: id ?? randomId, ...rest, checked: defaultChecked ? checked : isChecked, "aria-checked": getAriaChecked(!!defaultChecked, checked, isChecked), className: cn("size-4 p-0 cursor-pointer border-transparent bg-transparent focus-visible:outline focus-visible:outline-offset-2 focus-visible:outline-border-focused focus-visible:outline-solid rounded-sm", className), onCheckedChange: onCheckedChange, children: renderCheckboxIcon(defaultChecked ? checked : isChecked, disabled) }), label && (jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", disabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: id ?? randomId, "aria-disabled": disabled, children: label })), jsx(StateColorContainer, { className: cn(disabled
|
|
12338
12378
|
? "bg-fill-default group-hover/state:bg-fill-default group-active/state:bg-fill-default"
|
|
12339
12379
|
: "") })] }));
|
|
12340
12380
|
});
|
|
@@ -12418,6 +12458,33 @@ const DialogBody = ({ className, ...rest }) => {
|
|
|
12418
12458
|
return jsx(CardContent, { className: className, children: rest.children });
|
|
12419
12459
|
};
|
|
12420
12460
|
|
|
12461
|
+
/**
|
|
12462
|
+
* 전역 포커스 가시성 제어 훅
|
|
12463
|
+
*
|
|
12464
|
+
* - 마우스 클릭 시: body.using-mouse 추가 → outline 제거
|
|
12465
|
+
* - Tab 키로 이동 시: using-mouse 제거 → outline 정상 표시
|
|
12466
|
+
*
|
|
12467
|
+
* Telepix-UI의 focus-visible outline 정책을 보완하기 위해 사용.
|
|
12468
|
+
*/
|
|
12469
|
+
function useFocusVisibleMode() {
|
|
12470
|
+
useEffect(() => {
|
|
12471
|
+
const handleMouseDown = () => {
|
|
12472
|
+
document.body.classList.add("using-mouse");
|
|
12473
|
+
};
|
|
12474
|
+
const handleKeyDown = (e) => {
|
|
12475
|
+
if (e.key === "Tab") {
|
|
12476
|
+
document.body.classList.remove("using-mouse");
|
|
12477
|
+
}
|
|
12478
|
+
};
|
|
12479
|
+
window.addEventListener("mousedown", handleMouseDown);
|
|
12480
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
12481
|
+
return () => {
|
|
12482
|
+
window.removeEventListener("mousedown", handleMouseDown);
|
|
12483
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
12484
|
+
};
|
|
12485
|
+
}, []);
|
|
12486
|
+
}
|
|
12487
|
+
|
|
12421
12488
|
const SELECT_TRIGGER_VARIANTS = {
|
|
12422
12489
|
OUTLINE: "outline",
|
|
12423
12490
|
GHOST: "ghost",
|
|
@@ -12442,19 +12509,20 @@ const SELECT_TRIGGER_SIZES = {
|
|
|
12442
12509
|
* <Select>
|
|
12443
12510
|
* <SelectTrigger placeholder="Select an option" />
|
|
12444
12511
|
* <SelectContent>
|
|
12445
|
-
* <SelectItem value="option1"
|
|
12446
|
-
* <SelectItem value="option2"
|
|
12447
|
-
* <SelectItem value="option3"
|
|
12512
|
+
* <SelectItem value="option1" textValue="Option 1"></SelectItem>
|
|
12513
|
+
* <SelectItem value="option2" textValue="Option 2"></SelectItem>
|
|
12514
|
+
* <SelectItem value="option3" textValue="Option 3"></SelectItem>
|
|
12448
12515
|
* </SelectContent>
|
|
12449
12516
|
* </Select>
|
|
12450
12517
|
*/
|
|
12451
12518
|
const Select = (props) => jsx(Root2, { ...props });
|
|
12452
12519
|
const SelectTrigger = ({ placeholder, textValue, variant = "outline", size = "regular", icon, ...rest }) => {
|
|
12453
12520
|
const { className, ...otherProps } = rest;
|
|
12454
|
-
|
|
12455
|
-
|
|
12456
|
-
"border border-
|
|
12457
|
-
"border border-transparent py-0 px-2
|
|
12521
|
+
useFocusVisibleMode();
|
|
12522
|
+
return (jsxs(Trigger$1, { className: cn("select-trigger-focus-visible relative group/state flex items-center justify-between w-full bg-page-l-null outline-none cursor-pointer text-comp-mono-default data-[placeholder]:not-disabled:text-comp-mono-subtle-default data-disabled:text-comp-disabled rounded-md focus:outline-none focus-visible:outline focus-visible:outline-offset-2 focus-visible:outline-border-focused focus-visible:outline-solid", variant === SELECT_TRIGGER_VARIANTS.OUTLINE &&
|
|
12523
|
+
"border border-border-bound data-[state='open']:border-border-focused data-disabled:border-transparent py-0 px-2", variant === SELECT_TRIGGER_VARIANTS.GHOST &&
|
|
12524
|
+
"border border-transparent py-0 px-2 data-[state='open']:border-border-focused data-disabled:border-transparent", variant === SELECT_TRIGGER_VARIANTS.FILLED &&
|
|
12525
|
+
"border border-transparent py-0 px-2 bg-page-l3 data-[state='open']:border-border-focused data-[state='open']:bg-page-l2 data-disabled:border-transparent data-disabled:bg-page-l-null", size === SELECT_TRIGGER_SIZES.COMPACT &&
|
|
12458
12526
|
"py-1.5 px-1 text-label font-medium leading-label-compact gap-1", size === SELECT_TRIGGER_SIZES.REGULAR &&
|
|
12459
12527
|
"py-1.5 px-2 text-body font-medium leading-body-compact gap-2", size === SELECT_TRIGGER_SIZES.LARGE &&
|
|
12460
12528
|
"py-3 px-4 text-base leading-base-compact font-medium gap-3", className), ...otherProps, children: [icon && jsx("div", { className: "flex items-center justify-center", children: icon }), jsx(Value, { placeholder: placeholder, asChild: !!textValue, children: textValue && jsx("span", { children: textValue }) }), jsx(Icon$1, { className: "flex items-center justify-center text-comp-mono-default group-disabled/state:text-comp-disabled", children: jsx(CaretDownIcon, {}) }), jsx(StateColorContainer, { className: "group-data-disabled/state:bg-fill-default" })] }));
|
|
@@ -12472,8 +12540,19 @@ const SelectSeparator = (props) => {
|
|
|
12472
12540
|
};
|
|
12473
12541
|
const SelectItem = ({ indicator, ...rest }) => {
|
|
12474
12542
|
const { className, textValue, ...otherProps } = rest;
|
|
12475
|
-
return (jsxs(Item, { className: cn(`relative group/state flex items-center justify-between gap-2 py-1.5 px-2 cursor-pointer text-
|
|
12476
|
-
[&:is([data-disabled])]:
|
|
12543
|
+
return (jsxs(Item, { className: cn(`select-item-focus-visible relative group/state flex items-center justify-between gap-2 py-1.5 px-2 rounded-sm cursor-pointer text-body font-medium text-comp-mono-default outline-none
|
|
12544
|
+
[&:is([data-disabled])]:cursor-not-allowed
|
|
12545
|
+
[&:is([data-disabled])]:text-comp-disabled
|
|
12546
|
+
focus:outline-none
|
|
12547
|
+
focus-visible:outline-none
|
|
12548
|
+
focus-visible:[&::after]:content-['']
|
|
12549
|
+
focus-visible:[&::after]:absolute
|
|
12550
|
+
focus-visible:[&::after]:inset-0
|
|
12551
|
+
focus-visible:[&::after]:rounded-[inherit]
|
|
12552
|
+
focus-visible:[&::after]:border
|
|
12553
|
+
focus-visible:[&::after]:border-border-focused
|
|
12554
|
+
focus-visible:[&::after]:pointer-events-none
|
|
12555
|
+
focus-visible:[&::after]:z-10
|
|
12477
12556
|
`, className), ...otherProps, children: [jsx(ItemText, { children: textValue ?? otherProps.value }), indicator && (jsx(ItemIndicator, { className: "w-4 flex items-center justify-center", children: indicator })), jsx(StateColorContainer, { className: "group-data-disabled/state:bg-fill-default" })] }));
|
|
12478
12557
|
};
|
|
12479
12558
|
Select.displayName = "Select";
|
|
@@ -12513,7 +12592,7 @@ const VerticalMenus = forwardRef(({ disabled, value, onValueChange, className, .
|
|
|
12513
12592
|
});
|
|
12514
12593
|
const VerticalMenu = forwardRef(({ disabled, value, label, icon, variant = "accent", size = "regular", ...rest }, ref) => {
|
|
12515
12594
|
const context = useContext(VerticalMenusContext);
|
|
12516
|
-
const
|
|
12595
|
+
const isFocused = context.value === value;
|
|
12517
12596
|
const isDisabled = context.disabled || disabled || false;
|
|
12518
12597
|
const onClick = (e) => {
|
|
12519
12598
|
if (isDisabled)
|
|
@@ -12523,9 +12602,9 @@ const VerticalMenu = forwardRef(({ disabled, value, label, icon, variant = "acce
|
|
|
12523
12602
|
context.setSelectedMenu?.(value);
|
|
12524
12603
|
rest.onClick?.(e);
|
|
12525
12604
|
};
|
|
12526
|
-
return (jsxs("button", { ref: ref, className: cn("group/state relative w-full flex items-center rounded-md text-body leading-body-compact font-medium bg-transparent border-none cursor-pointer data-[
|
|
12527
|
-
`bg-page-l-null data-[
|
|
12528
|
-
"group-
|
|
12605
|
+
return (jsxs("button", { ref: ref, className: cn("group/state relative w-full flex items-center rounded-md text-body leading-body-compact font-medium bg-transparent border-none cursor-pointer data-[focused=true]:font-semibold data-disabled:text-comp-disabled text-comp-mono-default", size === VERTICAL_MENU_SIZES.SMALL && "gap-3 p-1", size === VERTICAL_MENU_SIZES.REGULAR && "gap-[18px] p-2.5", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
|
|
12606
|
+
`bg-page-l-null data-[focused=true]:bg-page-accent-l0 data-[focused=true]:text-comp-accent-default`, rest.className), ...rest, disabled: isDisabled, value: value, "data-focused": isFocused, onClick: onClick, children: [icon && (jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label, jsx(StateColorContainer, { className: cn("group-disabled/state:bg-fill-default", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
|
|
12607
|
+
"group-data-[focused=true]/state:bg-fill-default") })] }));
|
|
12529
12608
|
});
|
|
12530
12609
|
VerticalMenu.displayName = "VerticalMenu";
|
|
12531
12610
|
|
|
@@ -12550,18 +12629,18 @@ const HorizontalTabs = forwardRef(({ disabled, value, onValueChange, className,
|
|
|
12550
12629
|
value: selectedTab,
|
|
12551
12630
|
disabled: disabled ?? false,
|
|
12552
12631
|
setSelectedTab,
|
|
12553
|
-
}, children: jsx("div", { ref: ref, className: cn("flex items-center justify-start w-full", className), ...rest, children: rest.children }) }));
|
|
12632
|
+
}, children: jsx("div", { ref: ref, role: "tablist", "aria-orientation": "horizontal", className: cn("flex items-center justify-start w-full", className), ...rest, children: rest.children }) }));
|
|
12554
12633
|
});
|
|
12555
12634
|
const HorizontalTab = forwardRef(({ value, label, className, icon, size = "regular", ...rest }, ref) => {
|
|
12556
12635
|
const { value: selectedTab, setSelectedTab, disabled, } = useContext(HorizontalTabContext);
|
|
12557
|
-
const
|
|
12636
|
+
const isFocused = selectedTab === value;
|
|
12558
12637
|
const isDisabled = disabled || rest.disabled;
|
|
12559
12638
|
const handleClick = () => {
|
|
12560
12639
|
if (isDisabled)
|
|
12561
12640
|
return;
|
|
12562
12641
|
setSelectedTab(value);
|
|
12563
12642
|
};
|
|
12564
|
-
return (jsxs("button", { ref: ref, className: cn("relative group/state p-0 flex flex-col items-center justify-center flex-nowrap text-comp-mono-subtle-default text-body font-medium leading-body-compact bg-transparent border-none cursor-pointer disabled:cursor-not-allowed",
|
|
12643
|
+
return (jsxs("button", { ref: ref, role: "tab", type: "button", className: cn("relative group/state p-0 flex flex-col items-center justify-center flex-nowrap text-comp-mono-subtle-default text-body font-medium leading-body-compact bg-transparent border-none cursor-pointer disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-border-focused", isFocused && "font-bold", className), onClick: handleClick, disabled: isDisabled, "data-focused": isFocused, "aria-controls": `tabpanel-${value}`, id: `tab-${value}`, tabIndex: isFocused ? 0 : -1, ...rest, children: [jsxs("div", { className: cn("flex items-center justify-center gap-2", size === HORIZONTAL_TAB_SIZES.SMALL && "py-1 px-2", size === HORIZONTAL_TAB_SIZES.REGULAR && "py-2.5 px-2"), children: [icon && (jsx("span", { className: cn("flex items-center justify-center size-5", size === HORIZONTAL_TAB_SIZES.SMALL && "size-4"), children: icon })), label] }), jsx("div", { className: cn("bg-comp-mono-subtle-default mt-[3px] h-[1px] w-full", isFocused && "h-0.5 mt-0.5"), "data-focused": isFocused }), jsx(StateColorContainer, { className: "group-data-[focused=true]/state:bg-fill-default" })] }));
|
|
12565
12644
|
});
|
|
12566
12645
|
|
|
12567
12646
|
const ModeTabContext = createContext({
|
|
@@ -12584,14 +12663,14 @@ const ModeTabs = forwardRef(({ disabled, value, onValueChange, className, ...res
|
|
|
12584
12663
|
});
|
|
12585
12664
|
const ModeTab = forwardRef(({ label, icon, value, className, ...rest }, ref) => {
|
|
12586
12665
|
const { value: selectedTab, disabled, setSelectedTab, } = useContext(ModeTabContext);
|
|
12587
|
-
const
|
|
12666
|
+
const isFocused = selectedTab === value;
|
|
12588
12667
|
const isDisabled = disabled || rest.disabled;
|
|
12589
12668
|
const handleClick = () => {
|
|
12590
12669
|
if (isDisabled)
|
|
12591
12670
|
return;
|
|
12592
12671
|
setSelectedTab(value);
|
|
12593
12672
|
};
|
|
12594
|
-
return (jsxs("button", { ref: ref, className: cn("relative group/state shadow-basic px-2 py-1 flex items-center justify-center gap-2.5 flex-1 text-comp-mono-subtle-default
|
|
12673
|
+
return (jsxs("button", { ref: ref, className: cn("relative group/state shadow-basic px-2 py-1 flex items-center justify-center gap-2.5 flex-1 text-comp-mono-subtle-default data-[focused=true]:text-comp-mono-default text-body leading-body-compact font-medium cursor-pointer bg-transparent border-none rounded-sm hover:text-comp-mono-subtle-hovered active:text-comp-mono-subtle-pressed", isFocused && "bg-page-l0", isDisabled && "text-comp-disabled cursor-not-allowed", className), "data-focused": isFocused, disabled: isDisabled, onClick: handleClick, ...rest, children: [icon && (jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label, jsx(StateColorContainer, {})] }));
|
|
12595
12674
|
});
|
|
12596
12675
|
|
|
12597
12676
|
const TOOLTIP_SHORT_VARIANTS = {
|
|
@@ -12631,34 +12710,13 @@ const TooltipHeader = forwardRef((props, ref) => {
|
|
|
12631
12710
|
});
|
|
12632
12711
|
const TooltipDescription = forwardRef((props, ref) => {
|
|
12633
12712
|
const { className, ...otherProps } = props;
|
|
12634
|
-
return (jsx("div", { className: cn("text-body leading-body font-normal text-
|
|
12713
|
+
return (jsx("div", { className: cn("text-body leading-body font-normal text-inherit", className), ...otherProps, ref: ref, children: props.children }));
|
|
12635
12714
|
});
|
|
12636
12715
|
const TooltipFooter = forwardRef((props, ref) => {
|
|
12637
12716
|
const { className, ...otherProps } = props;
|
|
12638
12717
|
return (jsx("div", { className: cn("flex items-center justify-between pt-4", className), ...otherProps, ref: ref, children: props.children }));
|
|
12639
12718
|
});
|
|
12640
12719
|
|
|
12641
|
-
const Tag = forwardRef(({ icon, value, variant = "filled", size = "regular", className, onDeleteClick, onClick, useSelectedStyle = false, ...props }, ref) => {
|
|
12642
|
-
const [isSelected, setIsSelected] = useState(false);
|
|
12643
|
-
const handleClick = (event) => {
|
|
12644
|
-
if (useSelectedStyle)
|
|
12645
|
-
setIsSelected((prev) => !prev);
|
|
12646
|
-
onClick?.(event);
|
|
12647
|
-
};
|
|
12648
|
-
const handleDeleteClick = (event) => {
|
|
12649
|
-
event.stopPropagation();
|
|
12650
|
-
onDeleteClick?.(value, event);
|
|
12651
|
-
};
|
|
12652
|
-
return (jsxs("button", { ref: ref, className: cn("flex items-center justify-center rounded-sm bg-transparent relative group/state", variant === "filled" &&
|
|
12653
|
-
`bg-page-l4 text-comp-mono-subtle-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, variant === "accent" &&
|
|
12654
|
-
`bg-page-accent-l0 text-comp-accent-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, size === "regular" &&
|
|
12655
|
-
"text-body font-medium leading-body-compact px-2 py-1 gap-2", size === "small" &&
|
|
12656
|
-
"text-label font-medium leading-label-compact px-1.5 py-0.5 gap-1.5", className), onClick: handleClick, "data-selected": isSelected, "aria-selected": isSelected, ...props, children: [icon && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0", children: icon })), jsx("span", { className: "flex-1 text-nowrap overflow-hidden text-ellipsis text-inherit text-size-inherit leading-inherit font-inherit", children: value.label }), onDeleteClick && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0 cursor-pointer text-comp-mono-default group-disabled/state:text-comp-disabled", onClick: handleDeleteClick, children: jsx(X, {}) })), jsx(StateColorContainer, { className: cn(useSelectedStyle
|
|
12657
|
-
? ""
|
|
12658
|
-
: "group-active/state:bg-fill-default group-active/state:border-transparent group-disabled/state:bg-fill-default"), isInverted: variant === "accent" })] }));
|
|
12659
|
-
});
|
|
12660
|
-
Tag.displayName = "Tag";
|
|
12661
|
-
|
|
12662
12720
|
const TEXT_VARIANTS = {
|
|
12663
12721
|
BOLD3XLARGEBOLD: "bold3XLargeBold",
|
|
12664
12722
|
BOLD2XLARGEBOLDCOMPACT: "bold2XLargeBoldCompact",
|
|
@@ -12907,25 +12965,53 @@ const Input = forwardRef(({ size = "regular", variant = "outlined", leftIcon, ri
|
|
|
12907
12965
|
ref.current = node;
|
|
12908
12966
|
innerRef.current = node;
|
|
12909
12967
|
};
|
|
12910
|
-
|
|
12968
|
+
const generatedId = useId$1();
|
|
12969
|
+
const inputId = id ?? `input-${generatedId}`;
|
|
12970
|
+
useFocusVisibleMode();
|
|
12971
|
+
return (jsxs(Fragment$1, { children: [jsxs("div", { "aria-disabled": rest.disabled, className: cn("relative group/state flex items-center justify-center rounded-lg border bg-Page-l-null border-border-bound has-[input:disabled]:border-transparent has-input-focus-visible", variant === INPUT_VARIANTS.OUTLINED &&
|
|
12911
12972
|
"border border-border-bound focus-within:border-border-focused", variant === INPUT_VARIANTS.FILLED &&
|
|
12912
|
-
"bg-page-l3 border-transparent focus-within:border-
|
|
12973
|
+
"bg-page-l3 border-transparent focus-within:border-border-focused", size === INPUT_SIZES.SMALL &&
|
|
12913
12974
|
"py-1.5 px-2 text-label leading-label-compact font-medium gap-1", size === INPUT_SIZES.REGULAR &&
|
|
12914
12975
|
"py-1.5 px-2 text-body leading-body-compact font-medium gap-2", size === INPUT_SIZES.LARGE &&
|
|
12915
12976
|
"py-[11px] px-4 text-base leading-base-compact font-medium gap-3", isError &&
|
|
12916
|
-
"border-comp-chroma-error focus-within:border-comp-chroma-error", wrapperClassName), onClick: () => {
|
|
12977
|
+
"border-comp-chroma-error focus-within:border-comp-chroma-error focus-within:outline-comp-chroma-error", wrapperClassName), onClick: () => {
|
|
12917
12978
|
innerRef.current?.focus();
|
|
12918
|
-
}, children: [jsx(StateColorContainer, { className: cn("group-focus-within/state:bg-page-l-null", (!useHoverStyle || rest.disabled) && "hover:bg-fill-default") }), leftIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: leftIcon })), jsx("input", { ref: mergedRef,
|
|
12979
|
+
}, children: [jsx(StateColorContainer, { className: cn("group-focus-within/state:bg-page-l-null", (!useHoverStyle || rest.disabled) && "hover:bg-fill-default") }), leftIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: leftIcon })), jsx("input", { id: inputId.toString(), ref: mergedRef, "aria-invalid": isError, "aria-describedby": isError && errorMessage
|
|
12980
|
+
? `${rest.id || "input"}-error`
|
|
12981
|
+
: undefined, className: cn("border-none outline-none p-0 flex-1 bg-transparent min-w-0 text-comp-mono-default placeholder:text-comp-mono-subtle-default focus:placeholder:text-comp-mono-subtle-selected disabled:text-comp-disabled disabled:placeholder:text-comp-disabled focus-visible:outline-none", useHoverStyle &&
|
|
12919
12982
|
"hover:placeholder:text-comp-mono-subtle-hovered", size === INPUT_SIZES.SMALL &&
|
|
12920
12983
|
"text-label leading-label-compact font-medium", size === INPUT_SIZES.REGULAR &&
|
|
12921
12984
|
"text-body leading-body-compact font-medium", size === INPUT_SIZES.LARGE &&
|
|
12922
12985
|
"text-base leading-base-compact font-medium", isError &&
|
|
12923
12986
|
"placeholder:text-comp-chroma-error text-comp-chroma-error hover:placeholder:text-comp-error focus:placeholder:text-comp-error", rest.type === "number" &&
|
|
12924
12987
|
!useIndicator &&
|
|
12925
|
-
"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none", rest.className), ...rest }), rightIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: rightIcon }))] }), errorMessage && (jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-chroma-error mt-2", children: errorMessage }))] }));
|
|
12988
|
+
"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none", rest.className), ...rest }), rightIcon && (jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: rightIcon }))] }), errorMessage && (jsx(Text, { id: `${inputId}-error`, variant: "medLabelMedCompact", className: "text-comp-chroma-error mt-2", role: "alert", "aria-live": "polite", children: errorMessage }))] }));
|
|
12926
12989
|
});
|
|
12927
12990
|
Input.displayName = "Input";
|
|
12928
12991
|
|
|
12992
|
+
const Tag = forwardRef(({ icon, value, variant = "filled", size = "regular", className, onDeleteClick, onClick, useSelectedStyle = false, ...props }, ref) => {
|
|
12993
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
12994
|
+
const handleClick = (event) => {
|
|
12995
|
+
if (useSelectedStyle)
|
|
12996
|
+
setIsFocused((prev) => !prev);
|
|
12997
|
+
onClick?.(event);
|
|
12998
|
+
};
|
|
12999
|
+
const handleDeleteClick = (event) => {
|
|
13000
|
+
event.stopPropagation();
|
|
13001
|
+
onDeleteClick?.(value, event);
|
|
13002
|
+
};
|
|
13003
|
+
return (jsxs("button", { ref: ref, className: cn("flex items-center justify-center rounded-sm bg-transparent relative group/state", variant === "filled" &&
|
|
13004
|
+
`bg-page-l4 text-comp-mono-subtle-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, variant === "accent" &&
|
|
13005
|
+
`bg-page-accent-l0 text-comp-accent-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, size === "regular" &&
|
|
13006
|
+
"text-body font-medium leading-body-compact px-2 py-1 gap-2", size === "small" &&
|
|
13007
|
+
"text-label font-medium leading-label-compact px-1.5 py-0.5 gap-1.5", className), onClick: handleClick, "data-focused": isFocused, ...props, children: [icon && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0", children: icon })), jsx("span", { className: cn("flex-1 truncate text-inherit text-size-inherit font-inherit", size === "small" &&
|
|
13008
|
+
"leading-[calc(var(--spacing-label-compact)+3px)]", size === "regular" &&
|
|
13009
|
+
"leading-[calc(var(--spacing-body-compact)+3px)]"), children: value.label }), onDeleteClick && (jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0 cursor-pointer text-inherit group-disabled/state:text-comp-disabled", onClick: handleDeleteClick, children: jsx(X, {}) })), jsx(StateColorContainer, { className: cn(useSelectedStyle
|
|
13010
|
+
? ""
|
|
13011
|
+
: "group-active/state:bg-fill-default group-active/state:border-transparent group-disabled/state:bg-fill-default"), isInverted: variant === "accent" })] }));
|
|
13012
|
+
});
|
|
13013
|
+
Tag.displayName = "Tag";
|
|
13014
|
+
|
|
12929
13015
|
const MULTIPLE_SELECT_SIZES = {
|
|
12930
13016
|
REGULAR: "regular",
|
|
12931
13017
|
LARGE: "large",
|
|
@@ -12971,7 +13057,7 @@ const MultipleSelectTrigger = forwardRef(({ size = "regular", children, ...rest
|
|
|
12971
13057
|
setIsOpen(value);
|
|
12972
13058
|
onClick?.(e);
|
|
12973
13059
|
};
|
|
12974
|
-
return (jsxs("div", { ref: ref, className: cn("relative group/state flex items-center justify-between rounded-lg cursor-pointer border border-border-bound bg-page-l-null text-comp-mono-default
|
|
13060
|
+
return (jsxs("div", { ref: ref, className: cn("relative group/state flex items-center justify-between rounded-lg cursor-pointer border border-border-bound bg-page-l-null text-comp-mono-default data-[focused=true]:border-border-focused", disabled && "border-transparent cursor-not-allowed", size === MULTIPLE_SELECT_SIZES.REGULAR && "py-1.5 px-3 gap-2", size === MULTIPLE_SELECT_SIZES.LARGE && "py-3 pr-4 pl-3 gap-3", className), "data-disabled": disabled, "data-focused": isOpen, onClick: handleTriggerClick, ...otherProps, children: [children, jsx("span", { className: "flex items-center justify-center size-4 text-comp-mono-default", children: jsx(ChevronDown, { size: 16 }) }), jsx(StateColorContainer, { className: "group-data-[focused=true]/state:bg-fill-default" })] }));
|
|
12975
13061
|
});
|
|
12976
13062
|
const MultipleSelectValue = forwardRef(({ placeholder, className, ...rest }, ref) => {
|
|
12977
13063
|
const { values, disabled, setSelectedValues } = useContext(MultipleSelectContext);
|
|
@@ -13029,18 +13115,18 @@ const MultipleSelectContent = forwardRef(({ useSearch, options: optionsProps, in
|
|
|
13029
13115
|
});
|
|
13030
13116
|
const MultipleSelectItem = forwardRef(({ option, indicator, className, ...rest }, ref) => {
|
|
13031
13117
|
const { values, setSelectedValues } = useContext(MultipleSelectContext);
|
|
13032
|
-
const
|
|
13118
|
+
const isFocused = values.some((val) => val.value === option.value);
|
|
13033
13119
|
const handleClick = (e) => {
|
|
13034
13120
|
e.stopPropagation();
|
|
13035
13121
|
if (option.disabled)
|
|
13036
13122
|
return;
|
|
13037
|
-
const newValues =
|
|
13123
|
+
const newValues = isFocused
|
|
13038
13124
|
? values.filter((val) => val.value !== option.value)
|
|
13039
13125
|
: [...values, option];
|
|
13040
13126
|
setSelectedValues(newValues);
|
|
13041
13127
|
};
|
|
13042
|
-
return (jsxs("li", { ref: ref, "data-
|
|
13043
|
-
"bg-fill-disabled text-comp-disabled cursor-not-allowed", className), onClick: handleClick, ...rest, children: [jsx("span", { className: "flex-1
|
|
13128
|
+
return (jsxs("li", { ref: ref, "data-focused": isFocused, "data-disabled": option.disabled, className: cn("group/state relative py-2 px-3 cursor-pointer flex items-center justify-between gap-2 text-body text-comp-mono-default leading-body-compact font-medium rounded-sm", isFocused && "bg-fill-mono-selected text-comp-mono-default", option.disabled &&
|
|
13129
|
+
"bg-fill-disabled text-comp-disabled cursor-not-allowed", className), onClick: handleClick, ...rest, children: [jsx("span", { className: "flex-1 truncate text-inherit text-size-inherit leading-[calc(var(--spacing-body-compact)+3px)] h-max font-inherit", children: option.label }), indicator && isFocused && (jsx("span", { className: "flex items-center justify-center size-4", children: indicator })), jsx(StateColorContainer, {})] }));
|
|
13044
13130
|
});
|
|
13045
13131
|
|
|
13046
13132
|
const Table = forwardRef(({ className, ...rest }, ref) => {
|
|
@@ -13052,8 +13138,8 @@ const TableHeader = forwardRef(({ className, ...rest }, ref) => {
|
|
|
13052
13138
|
const TableBody = forwardRef(({ ...rest }, ref) => {
|
|
13053
13139
|
return jsx("tbody", { ref: ref, ...rest });
|
|
13054
13140
|
});
|
|
13055
|
-
const TableRow = forwardRef(({
|
|
13056
|
-
return (jsx("tr", { ref: ref, "data-
|
|
13141
|
+
const TableRow = forwardRef(({ isFocused, shouldLastBorderRender = true, className, ...rest }, ref) => {
|
|
13142
|
+
return (jsx("tr", { ref: ref, "data-focused": isFocused, "data-last-border": shouldLastBorderRender, className: cn("border-b border-border-divider hover:bg-fill-hovered", isFocused && "bg-fill-selected", !shouldLastBorderRender && "last:border-b-0", className), ...rest }));
|
|
13057
13143
|
});
|
|
13058
13144
|
const TableHead = forwardRef(({ className, children, ...rest }, ref) => {
|
|
13059
13145
|
return (jsx("th", { ref: ref, className: cn("text-body leading-body font-medium py-5 pr-0 pl-9 last:pr-9 align-middle text-comp-mono-subtle-default text-left", className), ...rest, children: jsx("div", { className: "overflow-hidden overflow-ellipsis whitespace-nowrap", children: children }) }));
|
|
@@ -13081,15 +13167,40 @@ const DataTable = ({ config, data, emptyMessage, onRowClick, enableSelection = f
|
|
|
13081
13167
|
};
|
|
13082
13168
|
return (jsxs(Table, { className: classNames?.table, ref: refs?.tableRef, children: [jsx(TableHeader, { className: classNames?.header, ref: refs?.headerRef, children: config.map((col) => (jsx(TableHead, { style: { minWidth: col.minWidth, maxWidth: col.maxWidth }, className: classNames?.head, ref: refs?.headRef, children: col.renderHeader
|
|
13083
13169
|
? col.renderHeader(col.header, col.headerKey)
|
|
13084
|
-
: col.header }, col.header))) }), jsx(TableBody, { className: classNames?.body, ref: refs?.bodyRef, children: rowData.length > 0 ? (rowData.map((item, index) => (jsx(TableRow, { id: item.randomId, onClick: () => handleRowClick(item, item.randomId),
|
|
13170
|
+
: col.header }, col.header))) }), jsx(TableBody, { className: classNames?.body, ref: refs?.bodyRef, children: rowData.length > 0 ? (rowData.map((item, index) => (jsx(TableRow, { id: item.randomId, onClick: () => handleRowClick(item, item.randomId), isFocused: selectedRow === item.randomId, shouldLastBorderRender: shouldLastBorderRender, className: classNames?.row, ref: refs?.rowRef, children: config.map((col, colIndex) => (jsx(TableCell, { className: classNames?.cell, ref: refs?.cellRef, showTooltip: col.showTooltip, style: { minWidth: col.minWidth, maxWidth: col.maxWidth }, children: col.renderFn(item) || "-" }, colIndex))) }, index)))) : emptyMessage ? (jsx(TableRow, { ref: refs?.rowRef, className: classNames?.row, children: jsx(TableCell, { colSpan: config.length, className: classNames?.cell, ref: refs?.cellRef, children: emptyMessage }) })) : null })] }));
|
|
13085
13171
|
};
|
|
13086
13172
|
|
|
13087
13173
|
const InteractiveListItemContext = createContext({
|
|
13088
13174
|
disabled: false,
|
|
13089
13175
|
});
|
|
13090
|
-
const
|
|
13091
|
-
return (
|
|
13092
|
-
|
|
13176
|
+
const isInteractiveElement = (target) => {
|
|
13177
|
+
return (target instanceof HTMLElement &&
|
|
13178
|
+
["BUTTON", "INPUT", "TEXTAREA", "SELECT", "A"].includes(target.tagName));
|
|
13179
|
+
};
|
|
13180
|
+
const InteractiveListItem = forwardRef(({ disabled, isSelected, showHoverActions = true, children, className, onClick, onKeyDown, ...rest }, ref) => {
|
|
13181
|
+
const handleClick = (e) => {
|
|
13182
|
+
if (disabled)
|
|
13183
|
+
return;
|
|
13184
|
+
onClick?.(e);
|
|
13185
|
+
};
|
|
13186
|
+
const handleKeyboardClick = (e) => {
|
|
13187
|
+
if (disabled)
|
|
13188
|
+
return;
|
|
13189
|
+
onKeyDown?.(e);
|
|
13190
|
+
const target = e.target;
|
|
13191
|
+
if (isInteractiveElement(target))
|
|
13192
|
+
return;
|
|
13193
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
13194
|
+
e.preventDefault();
|
|
13195
|
+
onClick?.({
|
|
13196
|
+
...e,
|
|
13197
|
+
type: "click",
|
|
13198
|
+
});
|
|
13199
|
+
}
|
|
13200
|
+
};
|
|
13201
|
+
return (jsx(InteractiveListItemContext, { value: { disabled: !!disabled }, children: jsxs("div", { ref: ref, role: onClick ? "button" : "listitem", tabIndex: onClick && !disabled ? 0 : undefined, "aria-disabled": disabled, "data-disabled": disabled, "data-selected": isSelected, "data-hover-actions": showHoverActions, className: cn("relative group/wrapper flex items-center gap-1 p-1.5 rounded-sm text-comp-mono-default bg-page-l-null border border-transparent", "data-[disabled=true]:cursor-not-allowed data-[disabled=true]:text-comp-disabled data-[disabled=true]:bg-fill-disabled", onClick &&
|
|
13202
|
+
!disabled &&
|
|
13203
|
+
"cursor-pointer focus-visible:outline focus-visible:outline-offset-2 focus-visible:outline-border-focused focus-visible:outline-solid", isSelected && "bg-fill-selected border-border-selected", className), onClick: handleClick, onKeyDown: onClick && !disabled ? handleKeyboardClick : onKeyDown, ...rest, children: [children, jsx(StateColorContainer, { groupName: "wrapper" })] }) }));
|
|
13093
13204
|
});
|
|
13094
13205
|
const InteractiveListItemIcon = forwardRef(({ children, className, ...props }, ref) => {
|
|
13095
13206
|
return (jsx("span", { className: cn("flex items-center justify-center size-6 p-1", className), ...props, ref: ref, children: children }));
|
|
@@ -13128,9 +13239,13 @@ const Calendar = ({ className, classNames, showOutsideDays = true, ...props }) =
|
|
|
13128
13239
|
...classNames,
|
|
13129
13240
|
}, components: {
|
|
13130
13241
|
Dropdown: (props) => {
|
|
13131
|
-
const { options, className,
|
|
13132
|
-
|
|
13133
|
-
|
|
13242
|
+
const { options, className, ...rest } = props;
|
|
13243
|
+
return (jsxs(Select, { value: rest.value?.toString(), onValueChange: (value) => {
|
|
13244
|
+
const changeEvent = {
|
|
13245
|
+
target: { value },
|
|
13246
|
+
};
|
|
13247
|
+
rest.onChange?.(changeEvent);
|
|
13248
|
+
}, children: [jsx(SelectTrigger, { variant: "filled", size: "compact", className: cn("px-2 py-1 h-9 gap-1.5 text-body leading-body-compact justify-end", props["aria-label"]?.includes("Month") ? "w-28" : "w-20", className) }), jsx(SelectContent, { className: "max-h-96", children: options?.map((option) => (jsx(SelectItem, { value: option.value.toString(), textValue: option.label, "aria-selected": option.value === rest.value, className: "aria-[selected=true]:bg-fill-selected" }, option.value))) })] }));
|
|
13134
13249
|
},
|
|
13135
13250
|
Chevron: (args) => (jsx(ChevronLeft, { ...args, size: 20, "data-orientation": args.orientation, className: "text-comp-mono-default [&:is([data-orientation='right'])]:rotate-180 [&:is([data-orientation='up'])]:rotate-90 [&:is([data-orientation='down'])]:-rotate-90" })),
|
|
13136
13251
|
}, ...props }));
|
|
@@ -13176,25 +13291,25 @@ const Button = forwardRef(({ variant = "accent", size = "regular", fullWidth = f
|
|
|
13176
13291
|
if (variant === BUTTON_VARIANTS.TEXT_DIM) {
|
|
13177
13292
|
return [
|
|
13178
13293
|
"h-auto py-0.5 px-0 text-body leading-body-compact gap-1.5",
|
|
13179
|
-
"bg-page-l-null text-comp-mono-subtle-default hover:text-comp-mono-default
|
|
13294
|
+
"bg-page-l-null text-comp-mono-subtle-default hover:text-comp-mono-default data-[focused=true]:text-comp-mono-default disabled:bg-page-l-null disabled:text-comp-disabled disabled:hover:text-comp-disabled",
|
|
13180
13295
|
];
|
|
13181
13296
|
}
|
|
13182
13297
|
const sizeClassName = {
|
|
13183
13298
|
small: "h-7 py-0 px-1 text-label leading-label-compact gap-1",
|
|
13184
13299
|
regular: "h-9 py-0 px-2 text-body leading-body-compact gap-1.5",
|
|
13185
|
-
large: "h-12 py-0 px-3 text-
|
|
13300
|
+
large: "h-12 py-0 px-3 text-base leading-base-compact gap-2",
|
|
13186
13301
|
}[size];
|
|
13187
13302
|
const variantClassName = {
|
|
13188
13303
|
accent: "bg-page-accent-l0 disabled:bg-pure-transparent text-comp-accent-default disabled:text-comp-disabled",
|
|
13189
|
-
outline: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent
|
|
13190
|
-
outline_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent
|
|
13304
|
+
outline: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent data-[focused=true]:border-border-selected",
|
|
13305
|
+
outline_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent data-[focused=true]:border-border-selected data-[focused=true]:bg-page-accent-l0 data-[focused=true]:text-comp-accent-default",
|
|
13191
13306
|
ghost: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled",
|
|
13192
13307
|
thumbnail_ghost: "bg-page-l-null disabled:bg-fill-disabled text-comp-mono-default disabled:text-comp-disabled",
|
|
13193
|
-
ghost_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled
|
|
13194
|
-
subtle_filled: "bg-page-l3 disabled:bg-fill-disabled text-comp-mono-subtle-default disabled:text-comp-disabled
|
|
13195
|
-
outline_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled border border-border-accent-bound disabled:border-pure-transparent
|
|
13308
|
+
ghost_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled data-[focused=true]:bg-page-accent-l0 data-[focused=true]:text-comp-accent-default",
|
|
13309
|
+
subtle_filled: "bg-page-l3 disabled:bg-fill-disabled text-comp-mono-subtle-default disabled:text-comp-disabled data-[focused=true]:text-comp-mono-default",
|
|
13310
|
+
outline_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled border border-border-accent-bound disabled:border-pure-transparent data-[focused=true]:border-border-accent-selected",
|
|
13196
13311
|
ghost_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled",
|
|
13197
|
-
ghost_dim: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-subtle-default disabled:text-comp-disabled
|
|
13312
|
+
ghost_dim: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-subtle-default disabled:text-comp-disabled data-[focused=true]:text-comp-mono-default",
|
|
13198
13313
|
text_dim: "", // 위에서 처리되므로 여기서는 빈 문자열
|
|
13199
13314
|
}[variant];
|
|
13200
13315
|
return [sizeClassName, variantClassName];
|
|
@@ -13213,22 +13328,22 @@ const Button = forwardRef(({ variant = "accent", size = "regular", fullWidth = f
|
|
|
13213
13328
|
return "size-5";
|
|
13214
13329
|
return "size-6"; // 기본값은 regular 크기
|
|
13215
13330
|
};
|
|
13216
|
-
return (jsxs("button", { ref: ref, disabled: disabled ?? isLoading, className: cn("flex group/state items-center justify-center relative box-border m-0 border-transparent outline-none cursor-pointer select-none align-middle appearance-none text-center transition-normal font-medium w-auto rounded-md
|
|
13331
|
+
return (jsxs("button", { ref: ref, disabled: disabled ?? isLoading, "aria-busy": isLoading, "aria-disabled": disabled ?? isLoading, "aria-pressed": rest["aria-pressed"], className: cn("flex group/state items-center justify-center relative box-border m-0 border-transparent outline-none border cursor-pointer select-none align-middle appearance-none text-center transition-normal font-medium w-auto rounded-md pointer-events-auto disabled:pointer-events-none disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-border-focused", ...getClassName(size, variant), fullWidth && "w-full", className), ...rest, children: [variant !== BUTTON_VARIANTS.TEXT_DIM && (jsx(StateColorContainer, { isInverted: variant === BUTTON_VARIANTS.ACCENT, className: cn("-inset-px", stateContainerClassName) })), isLoading && (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: cn("lucide lucide-loader-circle-icon lucide-loader-circle absolute animate-spin", size === BUTTON_SIZES.SMALL &&
|
|
13217
13332
|
"size-4 top-[calc(50%-8px)] left-[calc(50%-8px)]", size === BUTTON_SIZES.REGULAR &&
|
|
13218
13333
|
"size-5 top-[calc(50%-10px)] left-[calc(50%-10px)]", size === BUTTON_SIZES.LARGE &&
|
|
13219
13334
|
"size-6 top-[calc(50%-12px)] left-[calc(50%-12px)]"), children: jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) })), leftIcon && (jsx("div", { className: cn("flex items-center justify-center relative", variant === BUTTON_VARIANTS.THUMBNAIL_GHOST &&
|
|
13220
|
-
"aspect-square [&_img]:rounded-sm", getThumbnailSize(variant, size)), children: leftIcon })), children && (jsx("div", { className: "flex-1", style: { visibility: isLoading ? "hidden" : "visible" }, children: children })), rightIcon && (jsx("div", { className: cn("flex items-center justify-center relative", getThumbnailSize(variant, size)), children: rightIcon }))] }));
|
|
13335
|
+
"aspect-square [&_img]:rounded-sm", getThumbnailSize(variant, size)), children: leftIcon })), children && (jsx("div", { className: "flex-1 truncate", style: { visibility: isLoading ? "hidden" : "visible" }, children: children })), rightIcon && (jsx("div", { className: cn("flex items-center justify-center relative", getThumbnailSize(variant, size)), children: rightIcon }))] }));
|
|
13221
13336
|
});
|
|
13222
13337
|
Button.displayName = "Button";
|
|
13223
13338
|
/**
|
|
13224
13339
|
* Text Dim 스타일의 버튼 컴포넌트입니다.<br/>
|
|
13225
13340
|
* 텍스트 중심의 보조 액션(secondary / subtle action)에 적합한 low-emphasis 스타일을 제공합니다.<br/>
|
|
13226
|
-
* 기본적으로 낮은 명도의 텍스트를 사용하며, hover 시 명도가 상승하고
|
|
13341
|
+
* 기본적으로 낮은 명도의 텍스트를 사용하며, hover 시 명도가 상승하고 focused 시 accent 색상으로 강조됩니다.<br/>
|
|
13227
13342
|
* <br/>
|
|
13228
13343
|
* ### 사용 예시
|
|
13229
13344
|
* ```tsx
|
|
13230
13345
|
* <ButtonTextDim>자세히 보기</ButtonTextDim>
|
|
13231
|
-
* <ButtonTextDim
|
|
13346
|
+
* <ButtonTextDim data-focused="true">포커스됨</ButtonTextDim>
|
|
13232
13347
|
* ```
|
|
13233
13348
|
*/
|
|
13234
13349
|
const ButtonTextDim = forwardRef((props, ref) => {
|
|
@@ -13392,8 +13507,8 @@ const DatePicker = ({ size = "regular", placeholder = DEFAULT_PLACEHOLDER, forma
|
|
|
13392
13507
|
}
|
|
13393
13508
|
return placeholder ?? "";
|
|
13394
13509
|
};
|
|
13395
|
-
return (jsxs(Root2$2, { open: displayOpen, onOpenChange: handleOpenChange, children: [jsx(Trigger$2, { asChild: true, children: jsx(Button, { size: size, fullWidth: true, variant: "outline", leftIcon: jsx(Calendar$1, { size: 20 }), className: "justify-start", "
|
|
13396
|
-
? "group-
|
|
13510
|
+
return (jsxs(Root2$2, { open: displayOpen, onOpenChange: handleOpenChange, children: [jsx(Trigger$2, { asChild: true, children: jsx(Button, { size: size, fullWidth: true, variant: "outline", leftIcon: jsx(Calendar$1, { size: 20 }), className: "justify-start", "data-focused": displayOpen, "aria-label": `Date picker, ${getDateToFormatString(displayValue) || placeholder}`, disabled: disabled, stateContainerClassName: displayOpen
|
|
13511
|
+
? "group-data-[focused=true]/state:bg-fill-default"
|
|
13397
13512
|
: undefined, children: getDateToFormatString(displayValue) }) }), jsx(Content2$2, { sideOffset: 10, align: "start", className: cn("z-10", popoverContentClassName), ...rest, children: mode === CALENDAR_MODES.SINGLE ? (jsx(Calendar, { mode: "single", ...rest, selected: displayValue, onSelect: handleSelect, disabled: isCalendarDisabled, defaultMonth: defaultMonth })) : mode === CALENDAR_MODES.MULTIPLE ? (jsx(Calendar, { mode: "multiple", ...rest, selected: Array.isArray(displayValue) ? displayValue : [], onSelect: handleSelect, disabled: isCalendarDisabled, defaultMonth: defaultMonth })) : (jsx(Calendar, { mode: "range", ...rest, selected: displayValue, onSelect: handleSelect, disabled: isCalendarDisabled, defaultMonth: defaultMonth })) })] }));
|
|
13398
13513
|
};
|
|
13399
13514
|
|
|
@@ -13428,7 +13543,7 @@ const ContextMenuItemIndicator = (props) => {
|
|
|
13428
13543
|
|
|
13429
13544
|
const AutocompleteContentItem = ({ inputValue, item, index, displayValue, highlightedIndex, onClick, className = "", }) => {
|
|
13430
13545
|
const isHighlighted = index === highlightedIndex;
|
|
13431
|
-
return (jsx("li", { id: `suggestion-item-${index}`, className: cn("rounded-sm p-2 text-comp-mono-default text-body leading-body-compact font-medium list-none hover:bg-fill-hovered", isHighlighted && "bg-fill-selected", className), onClick: (e) => onClick(item, e), role: "option", "
|
|
13546
|
+
return (jsx("li", { id: `suggestion-item-${index}`, className: cn("rounded-sm p-2 text-comp-mono-default text-body leading-body-compact font-medium list-none hover:bg-fill-hovered", isHighlighted && "bg-fill-selected", className), onClick: (e) => onClick(item, e), role: "option", "data-focused": isHighlighted, children: displayValue(item)
|
|
13432
13547
|
.split(new RegExp(`(${inputValue.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")})`, "gi"))
|
|
13433
13548
|
.map((part, i) => part.toLowerCase() === inputValue.toLowerCase() ? (jsx("span", { className: "font-bold text-comp-chroma-error", children: part }, i)) : (jsx("span", { children: part }, i))) }));
|
|
13434
13549
|
};
|