@nattstack/ui 0.0.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/button-spinner.module-T3OGVJS4.module.css +95 -0
- package/dist/button.module-77AJOXGM.module.css +209 -0
- package/dist/column.module-A7QCVPFC.module.css +4 -0
- package/dist/index.d.ts +250 -0
- package/dist/index.js +715 -0
- package/dist/input.module-DOM3NIU5.module.css +101 -0
- package/dist/label.module-HUBUIUFV.module.css +9 -0
- package/dist/row.module-GYNANRAY.module.css +4 -0
- package/dist/spacer.module-ZYYYWYEB.module.css +3 -0
- package/dist/switch.module-TLJBHCSA.module.css +62 -0
- package/dist/tabs-panel.module-VGH3G3KV.module.css +12 -0
- package/dist/tabs-pill-indicator.module-533HMO7L.module.css +12 -0
- package/dist/tabs-pill-list.module-KQW67ZSW.module.css +7 -0
- package/dist/tabs-pill-tab.module-M5YIWTWX.module.css +57 -0
- package/dist/tabs-segmented-indicator.module-MB5GZJGW.module.css +12 -0
- package/dist/tabs-segmented-list.module-I3DSVFSP.module.css +11 -0
- package/dist/tabs-segmented-tab.module-GFCOY63Z.module.css +29 -0
- package/dist/tabs-underline-indicator.module-6SHQHUH5.module.css +10 -0
- package/dist/tabs-underline-list.module-72ZCIEAS.module.css +8 -0
- package/dist/tabs-underline-tab.module-YGSM4IUK.module.css +28 -0
- package/dist/tabs.module-3Z5DRPPX.module.css +5 -0
- package/dist/textarea.module-6GUVSFC7.module.css +9 -0
- package/dist/tooltip-content.module-5MWTMSBY.module.css +13 -0
- package/package.json +58 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,715 @@
|
|
|
1
|
+
// src/components/button-link/button-link.tsx
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
|
|
4
|
+
// src/components/button/button-spinner.tsx
|
|
5
|
+
import styles from "./button-spinner.module-T3OGVJS4.module.css";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
function ButtonSpinner(props) {
|
|
8
|
+
const { size = 16 } = props;
|
|
9
|
+
return /* @__PURE__ */ jsx("div", { className: styles.button_spinner, style: { "--size": `${size}px` }, children: Array.from({ length: 12 }).map((_, index) => /* @__PURE__ */ jsx("div", {}, index)) });
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/utils/normalize-whitespace.ts
|
|
13
|
+
function normalizeWhitespace(value) {
|
|
14
|
+
return value.replaceAll(/\s+/g, " ").trim();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// src/components/button/button.tsx
|
|
18
|
+
import styles2 from "./button.module-77AJOXGM.module.css";
|
|
19
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
20
|
+
function Button(props) {
|
|
21
|
+
const {
|
|
22
|
+
children = "",
|
|
23
|
+
className: customClassName = "",
|
|
24
|
+
iconEnd = "",
|
|
25
|
+
iconStart = "",
|
|
26
|
+
isActive = false,
|
|
27
|
+
isDisabled = false,
|
|
28
|
+
isFullWidth = false,
|
|
29
|
+
isIconOnly = false,
|
|
30
|
+
isLoading = false,
|
|
31
|
+
isRounded = false,
|
|
32
|
+
size = 40,
|
|
33
|
+
type = "button",
|
|
34
|
+
variant = "primary",
|
|
35
|
+
...rest
|
|
36
|
+
} = props;
|
|
37
|
+
const combinedClassName = normalizeWhitespace(`
|
|
38
|
+
${BUTTON_CLASS_NAME.BASE}
|
|
39
|
+
${BUTTON_CLASS_NAME.SIZE[size]}
|
|
40
|
+
${BUTTON_CLASS_NAME.VARIANT[variant.toUpperCase()]}
|
|
41
|
+
${isFullWidth ? BUTTON_CLASS_NAME.WIDTH.FULL : BUTTON_CLASS_NAME.WIDTH.BASE}
|
|
42
|
+
${isIconOnly ? BUTTON_CLASS_NAME.ICON_ONLY : ""}
|
|
43
|
+
${isRounded ? BUTTON_CLASS_NAME.ROUNDED.FULL : BUTTON_CLASS_NAME.ROUNDED.BASE}
|
|
44
|
+
${customClassName}
|
|
45
|
+
`);
|
|
46
|
+
return /* @__PURE__ */ jsxs(
|
|
47
|
+
"button",
|
|
48
|
+
{
|
|
49
|
+
"aria-pressed": isActive,
|
|
50
|
+
className: combinedClassName,
|
|
51
|
+
disabled: isDisabled || isLoading,
|
|
52
|
+
type,
|
|
53
|
+
...rest,
|
|
54
|
+
children: [
|
|
55
|
+
isLoading && /* @__PURE__ */ jsx2(ButtonSpinner, {}),
|
|
56
|
+
!isLoading && iconStart,
|
|
57
|
+
isIconOnly ? isLoading ? void 0 : children : /* @__PURE__ */ jsx2("span", { children }),
|
|
58
|
+
!isLoading && iconEnd
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
var BUTTON_CLASS_NAME = {
|
|
64
|
+
BASE: styles2.button,
|
|
65
|
+
ICON_ONLY: styles2.button__icon_only,
|
|
66
|
+
ROUNDED: {
|
|
67
|
+
BASE: styles2.button__rounded_base,
|
|
68
|
+
FULL: styles2.button__rounded_full
|
|
69
|
+
},
|
|
70
|
+
SIZE: {
|
|
71
|
+
32: styles2.button__size_32,
|
|
72
|
+
36: styles2.button__size_36,
|
|
73
|
+
40: styles2.button__size_40,
|
|
74
|
+
44: styles2.button__size_44,
|
|
75
|
+
48: styles2.button__size_48
|
|
76
|
+
},
|
|
77
|
+
VARIANT: {
|
|
78
|
+
ACCENT: styles2.button__variant_accent,
|
|
79
|
+
GHOST: styles2.button__variant_ghost,
|
|
80
|
+
PRIMARY: styles2.button__variant_primary,
|
|
81
|
+
SECONDARY: styles2.button__variant_secondary
|
|
82
|
+
},
|
|
83
|
+
WIDTH: {
|
|
84
|
+
BASE: styles2.button__width_base,
|
|
85
|
+
FULL: styles2.button__width_full
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// src/components/button-link/button-link.tsx
|
|
90
|
+
function ButtonLink(props) {
|
|
91
|
+
const {
|
|
92
|
+
as = "a",
|
|
93
|
+
className: customClassName = "",
|
|
94
|
+
isFullWidth = false,
|
|
95
|
+
isIconOnly = false,
|
|
96
|
+
isRounded = false,
|
|
97
|
+
size = 40,
|
|
98
|
+
variant = "primary",
|
|
99
|
+
...rest
|
|
100
|
+
} = props;
|
|
101
|
+
const Component = as;
|
|
102
|
+
const combinedClassName = normalizeWhitespace(`
|
|
103
|
+
${BUTTON_CLASS_NAME.BASE}
|
|
104
|
+
${BUTTON_CLASS_NAME.SIZE[size]}
|
|
105
|
+
${BUTTON_CLASS_NAME.VARIANT[variant.toUpperCase()]}
|
|
106
|
+
${isFullWidth ? BUTTON_CLASS_NAME.WIDTH.FULL : BUTTON_CLASS_NAME.WIDTH.BASE}
|
|
107
|
+
${isIconOnly ? BUTTON_CLASS_NAME.ICON_ONLY : ""}
|
|
108
|
+
${isRounded ? BUTTON_CLASS_NAME.ROUNDED.FULL : BUTTON_CLASS_NAME.ROUNDED.BASE}
|
|
109
|
+
${customClassName}
|
|
110
|
+
`);
|
|
111
|
+
return createElement(Component, {
|
|
112
|
+
className: combinedClassName,
|
|
113
|
+
...rest
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// src/components/column/column.tsx
|
|
118
|
+
import {
|
|
119
|
+
createElement as createElement2
|
|
120
|
+
} from "react";
|
|
121
|
+
import styles3 from "./column.module-A7QCVPFC.module.css";
|
|
122
|
+
function Column(props) {
|
|
123
|
+
const {
|
|
124
|
+
alignItems = void 0,
|
|
125
|
+
as = "div",
|
|
126
|
+
className: customClassName = "",
|
|
127
|
+
flexWrap = void 0,
|
|
128
|
+
gap = void 0,
|
|
129
|
+
gapX = void 0,
|
|
130
|
+
gapY = void 0,
|
|
131
|
+
justifyContent = void 0,
|
|
132
|
+
style: customStyle,
|
|
133
|
+
...rest
|
|
134
|
+
} = props;
|
|
135
|
+
const Component = as;
|
|
136
|
+
const combinedClassName = normalizeWhitespace(`
|
|
137
|
+
${COLUMN_CLASS_NAME.BASE}
|
|
138
|
+
${customClassName}
|
|
139
|
+
`);
|
|
140
|
+
const combinedStyle = {
|
|
141
|
+
...customStyle,
|
|
142
|
+
...gap === void 0 ? {} : { gap },
|
|
143
|
+
...gapX === void 0 ? {} : { columnGap: gapX },
|
|
144
|
+
...gapY === void 0 ? {} : { rowGap: gapY },
|
|
145
|
+
...flexWrap === void 0 ? {} : { flexWrap },
|
|
146
|
+
...alignItems === void 0 ? {} : { alignItems },
|
|
147
|
+
...justifyContent === void 0 ? {} : { justifyContent }
|
|
148
|
+
};
|
|
149
|
+
return createElement2(Component, {
|
|
150
|
+
className: combinedClassName,
|
|
151
|
+
style: combinedStyle,
|
|
152
|
+
...rest
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
var COLUMN_CLASS_NAME = {
|
|
156
|
+
BASE: styles3.column
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// src/components/input/input.tsx
|
|
160
|
+
import styles4 from "./input.module-DOM3NIU5.module.css";
|
|
161
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
162
|
+
function Input(props) {
|
|
163
|
+
const {
|
|
164
|
+
className: customClassName = "",
|
|
165
|
+
isActive = false,
|
|
166
|
+
isDisabled = false,
|
|
167
|
+
isInvalid = void 0,
|
|
168
|
+
isReadOnly = false,
|
|
169
|
+
isRequired = false,
|
|
170
|
+
isRounded = false,
|
|
171
|
+
isValid = void 0,
|
|
172
|
+
size = 44,
|
|
173
|
+
type = "text",
|
|
174
|
+
...rest
|
|
175
|
+
} = props;
|
|
176
|
+
const isPassword = type === "password";
|
|
177
|
+
const combinedClassName = normalizeWhitespace(`
|
|
178
|
+
${INPUT_CLASS_NAME.BASE}
|
|
179
|
+
${INPUT_CLASS_NAME.SIZE[size]}
|
|
180
|
+
${isPassword ? INPUT_CLASS_NAME.PASSWORD : ""}
|
|
181
|
+
${isRounded ? INPUT_CLASS_NAME.ROUNDED.FULL : INPUT_CLASS_NAME.ROUNDED.BASE}
|
|
182
|
+
${customClassName}
|
|
183
|
+
`);
|
|
184
|
+
return /* @__PURE__ */ jsx3(
|
|
185
|
+
"input",
|
|
186
|
+
{
|
|
187
|
+
className: combinedClassName,
|
|
188
|
+
"data-is-active": isActive,
|
|
189
|
+
"data-is-invalid": isInvalid,
|
|
190
|
+
"data-is-valid": isValid,
|
|
191
|
+
disabled: isDisabled,
|
|
192
|
+
readOnly: isReadOnly,
|
|
193
|
+
required: isRequired,
|
|
194
|
+
type,
|
|
195
|
+
...rest
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
var INPUT_CLASS_NAME = {
|
|
200
|
+
BASE: styles4.input,
|
|
201
|
+
PASSWORD: styles4.input__password,
|
|
202
|
+
ROUNDED: {
|
|
203
|
+
BASE: styles4.input__rounded_base,
|
|
204
|
+
FULL: styles4.input__rounded_full
|
|
205
|
+
},
|
|
206
|
+
SIZE: {
|
|
207
|
+
32: styles4.input__size_32,
|
|
208
|
+
36: styles4.input__size_36,
|
|
209
|
+
40: styles4.input__size_40,
|
|
210
|
+
44: styles4.input__size_44,
|
|
211
|
+
48: styles4.input__size_48
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// src/components/label/label.tsx
|
|
216
|
+
import styles5 from "./label.module-HUBUIUFV.module.css";
|
|
217
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
218
|
+
function Label(props) {
|
|
219
|
+
const { className: customClassName = "", htmlFor = void 0, children = "", ...rest } = props;
|
|
220
|
+
const combinedClassName = normalizeWhitespace(`
|
|
221
|
+
${LABEL_CLASS_NAME.BASE}
|
|
222
|
+
${customClassName}
|
|
223
|
+
`);
|
|
224
|
+
return /* @__PURE__ */ jsx4("label", { className: combinedClassName, htmlFor, ...rest, children });
|
|
225
|
+
}
|
|
226
|
+
var LABEL_CLASS_NAME = {
|
|
227
|
+
BASE: styles5.label
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
// src/components/row/row.tsx
|
|
231
|
+
import {
|
|
232
|
+
createElement as createElement3
|
|
233
|
+
} from "react";
|
|
234
|
+
import styles6 from "./row.module-GYNANRAY.module.css";
|
|
235
|
+
function Row(props) {
|
|
236
|
+
const {
|
|
237
|
+
alignItems = void 0,
|
|
238
|
+
as = "div",
|
|
239
|
+
className: customClassName = "",
|
|
240
|
+
flexWrap = void 0,
|
|
241
|
+
gap = void 0,
|
|
242
|
+
gapX = void 0,
|
|
243
|
+
gapY = void 0,
|
|
244
|
+
justifyContent = void 0,
|
|
245
|
+
style: customStyle,
|
|
246
|
+
...rest
|
|
247
|
+
} = props;
|
|
248
|
+
const Component = as;
|
|
249
|
+
const combinedClassName = normalizeWhitespace(`
|
|
250
|
+
${ROW_CLASS_NAME.BASE}
|
|
251
|
+
${customClassName}
|
|
252
|
+
`);
|
|
253
|
+
const combinedStyle = {
|
|
254
|
+
...customStyle,
|
|
255
|
+
...gap === void 0 ? {} : { gap },
|
|
256
|
+
...gapX === void 0 ? {} : { columnGap: gapX },
|
|
257
|
+
...gapY === void 0 ? {} : { rowGap: gapY },
|
|
258
|
+
...flexWrap === void 0 ? {} : { flexWrap },
|
|
259
|
+
...alignItems === void 0 ? {} : { alignItems },
|
|
260
|
+
...justifyContent === void 0 ? {} : { justifyContent }
|
|
261
|
+
};
|
|
262
|
+
return createElement3(Component, {
|
|
263
|
+
className: combinedClassName,
|
|
264
|
+
style: combinedStyle,
|
|
265
|
+
...rest
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
var ROW_CLASS_NAME = {
|
|
269
|
+
BASE: styles6.row
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
// src/components/spacer/spacer.tsx
|
|
273
|
+
import styles7 from "./spacer.module-ZYYYWYEB.module.css";
|
|
274
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
275
|
+
function Spacer(props) {
|
|
276
|
+
const { className: customClassName = "", height, style: customStyle, width, ...rest } = props;
|
|
277
|
+
const combinedClassName = normalizeWhitespace(`
|
|
278
|
+
${SPACER_CLASS_NAME.BASE}
|
|
279
|
+
${customClassName}
|
|
280
|
+
`);
|
|
281
|
+
const combinedStyle = {
|
|
282
|
+
...customStyle,
|
|
283
|
+
...width === void 0 ? {} : { width },
|
|
284
|
+
...height === void 0 ? {} : { height }
|
|
285
|
+
};
|
|
286
|
+
return /* @__PURE__ */ jsx5("div", { className: combinedClassName, style: combinedStyle, ...rest });
|
|
287
|
+
}
|
|
288
|
+
var SPACER_CLASS_NAME = {
|
|
289
|
+
BASE: styles7.spacer
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
// src/components/switch/switch.tsx
|
|
293
|
+
import { Switch as BaseSwitch } from "@base-ui/react";
|
|
294
|
+
import styles8 from "./switch.module-TLJBHCSA.module.css";
|
|
295
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
296
|
+
function Switch(props) {
|
|
297
|
+
const {
|
|
298
|
+
className: customClassName = "",
|
|
299
|
+
isChecked = void 0,
|
|
300
|
+
isDefaultChecked = false,
|
|
301
|
+
isDisabled = false,
|
|
302
|
+
isReadOnly = false,
|
|
303
|
+
isRequired = false,
|
|
304
|
+
size = 24,
|
|
305
|
+
...rest
|
|
306
|
+
} = props;
|
|
307
|
+
const combinedClassName = normalizeWhitespace(`
|
|
308
|
+
${SWITCH_CLASS_NAME.BASE}
|
|
309
|
+
${SWITCH_CLASS_NAME.SIZE[size]}
|
|
310
|
+
${customClassName}
|
|
311
|
+
`);
|
|
312
|
+
return /* @__PURE__ */ jsx6(
|
|
313
|
+
BaseSwitch.Root,
|
|
314
|
+
{
|
|
315
|
+
checked: isChecked,
|
|
316
|
+
className: combinedClassName,
|
|
317
|
+
defaultChecked: isDefaultChecked,
|
|
318
|
+
disabled: isDisabled,
|
|
319
|
+
readOnly: isReadOnly,
|
|
320
|
+
required: isRequired,
|
|
321
|
+
...rest,
|
|
322
|
+
children: /* @__PURE__ */ jsx6(BaseSwitch.Thumb, { className: styles8.switch__thumb })
|
|
323
|
+
}
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
var SWITCH_CLASS_NAME = {
|
|
327
|
+
BASE: styles8.switch,
|
|
328
|
+
SIZE: {
|
|
329
|
+
18: styles8.switch__size_18,
|
|
330
|
+
24: styles8.switch__size_24
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
// src/components/tabs-pill/tabs-pill-list.tsx
|
|
335
|
+
import { Tabs as BaseTabs2 } from "@base-ui/react";
|
|
336
|
+
|
|
337
|
+
// src/components/tabs-pill/tabs-pill-indicator.tsx
|
|
338
|
+
import { Tabs as BaseTabs } from "@base-ui/react";
|
|
339
|
+
import styles9 from "./tabs-pill-indicator.module-533HMO7L.module.css";
|
|
340
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
341
|
+
function TabsPillIndicator(props) {
|
|
342
|
+
const { className: customClassName = "", ...rest } = props;
|
|
343
|
+
const combinedClassName = normalizeWhitespace(`
|
|
344
|
+
${TABS_PILL_INDICATOR_CLASS_NAME.BASE}
|
|
345
|
+
${customClassName}
|
|
346
|
+
`);
|
|
347
|
+
return /* @__PURE__ */ jsx7(
|
|
348
|
+
BaseTabs.Indicator,
|
|
349
|
+
{
|
|
350
|
+
className: combinedClassName,
|
|
351
|
+
"data-slot": "tabs-pill-indicator",
|
|
352
|
+
renderBeforeHydration: true,
|
|
353
|
+
...rest
|
|
354
|
+
}
|
|
355
|
+
);
|
|
356
|
+
}
|
|
357
|
+
var TABS_PILL_INDICATOR_CLASS_NAME = {
|
|
358
|
+
BASE: styles9.tabs_pill_indicator
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
// src/components/tabs-pill/tabs-pill-list.tsx
|
|
362
|
+
import styles10 from "./tabs-pill-list.module-KQW67ZSW.module.css";
|
|
363
|
+
import { jsx as jsx8, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
364
|
+
function TabsPillList(props) {
|
|
365
|
+
const { className: customClassName = "", children = "", ...rest } = props;
|
|
366
|
+
const combinedClassName = normalizeWhitespace(`
|
|
367
|
+
${TABS_PILL_LIST_CLASS_NAME.BASE}
|
|
368
|
+
${customClassName}
|
|
369
|
+
`);
|
|
370
|
+
return /* @__PURE__ */ jsxs2(BaseTabs2.List, { className: combinedClassName, "data-slot": "tabs-pill-list", ...rest, children: [
|
|
371
|
+
children,
|
|
372
|
+
/* @__PURE__ */ jsx8(TabsPillIndicator, {})
|
|
373
|
+
] });
|
|
374
|
+
}
|
|
375
|
+
var TABS_PILL_LIST_CLASS_NAME = {
|
|
376
|
+
BASE: styles10.tabs_pill_list
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
// src/components/tabs-pill/tabs-pill-tab.tsx
|
|
380
|
+
import { Tabs as BaseTabs3 } from "@base-ui/react";
|
|
381
|
+
import styles11 from "./tabs-pill-tab.module-M5YIWTWX.module.css";
|
|
382
|
+
import { jsx as jsx9, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
383
|
+
function TabsPillTab(props) {
|
|
384
|
+
const { className: customClassName = "", isNativeButton = true, ...rest } = props;
|
|
385
|
+
const combinedClassName = normalizeWhitespace(`
|
|
386
|
+
${TABS_PILL_TAB_CLASS_NAME.BASE}
|
|
387
|
+
${customClassName}
|
|
388
|
+
`);
|
|
389
|
+
return /* @__PURE__ */ jsxs3("div", { className: TABS_PILL_TAB_CLASS_NAME.WRAPPER, children: [
|
|
390
|
+
/* @__PURE__ */ jsx9(
|
|
391
|
+
BaseTabs3.Tab,
|
|
392
|
+
{
|
|
393
|
+
className: combinedClassName,
|
|
394
|
+
"data-slot": "tabs-pill-tab",
|
|
395
|
+
nativeButton: isNativeButton,
|
|
396
|
+
...rest
|
|
397
|
+
}
|
|
398
|
+
),
|
|
399
|
+
/* @__PURE__ */ jsx9("div", { className: TABS_PILL_TAB_CLASS_NAME.BACKGROUND })
|
|
400
|
+
] });
|
|
401
|
+
}
|
|
402
|
+
var TABS_PILL_TAB_CLASS_NAME = {
|
|
403
|
+
BACKGROUND: styles11.tabs_pill_tab_background,
|
|
404
|
+
BASE: styles11.tabs_pill_tab,
|
|
405
|
+
WRAPPER: styles11.tabs_pill_tab_wrapper
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
// src/components/tabs-segmented/tabs-segmented-list.tsx
|
|
409
|
+
import { Tabs as BaseTabs5 } from "@base-ui/react";
|
|
410
|
+
|
|
411
|
+
// src/components/tabs-segmented/tabs-segmented-indicator.tsx
|
|
412
|
+
import { Tabs as BaseTabs4 } from "@base-ui/react";
|
|
413
|
+
import styles12 from "./tabs-segmented-indicator.module-MB5GZJGW.module.css";
|
|
414
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
415
|
+
function TabsSegmentedIndicator(props) {
|
|
416
|
+
const { className: customClassName = "", ...rest } = props;
|
|
417
|
+
const combinedClassName = normalizeWhitespace(`
|
|
418
|
+
${TABS_SEGMENTED_INDICATOR_CLASS_NAME.BASE}
|
|
419
|
+
${customClassName}
|
|
420
|
+
`);
|
|
421
|
+
return /* @__PURE__ */ jsx10(
|
|
422
|
+
BaseTabs4.Indicator,
|
|
423
|
+
{
|
|
424
|
+
className: combinedClassName,
|
|
425
|
+
"data-slot": "tabs-segmented-indicator",
|
|
426
|
+
renderBeforeHydration: true,
|
|
427
|
+
...rest
|
|
428
|
+
}
|
|
429
|
+
);
|
|
430
|
+
}
|
|
431
|
+
var TABS_SEGMENTED_INDICATOR_CLASS_NAME = {
|
|
432
|
+
BASE: styles12.tabs_segmented_indicator
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
// src/components/tabs-segmented/tabs-segmented-list.tsx
|
|
436
|
+
import styles13 from "./tabs-segmented-list.module-I3DSVFSP.module.css";
|
|
437
|
+
import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
438
|
+
function TabsSegmentedList(props) {
|
|
439
|
+
const { className: customClassName = "", children = "", ...rest } = props;
|
|
440
|
+
const combinedClassName = normalizeWhitespace(`
|
|
441
|
+
${TABS_SEGMENTED_LIST_CLASS_NAME.BASE}
|
|
442
|
+
${customClassName}
|
|
443
|
+
`);
|
|
444
|
+
return /* @__PURE__ */ jsxs4(BaseTabs5.List, { className: combinedClassName, "data-slot": "tabs-segmented-list", ...rest, children: [
|
|
445
|
+
children,
|
|
446
|
+
/* @__PURE__ */ jsx11(TabsSegmentedIndicator, {})
|
|
447
|
+
] });
|
|
448
|
+
}
|
|
449
|
+
var TABS_SEGMENTED_LIST_CLASS_NAME = {
|
|
450
|
+
BASE: styles13.tabs_segmented_list
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
// src/components/tabs-segmented/tabs-segmented-tab.tsx
|
|
454
|
+
import { Tabs as BaseTabs6 } from "@base-ui/react";
|
|
455
|
+
import styles14 from "./tabs-segmented-tab.module-GFCOY63Z.module.css";
|
|
456
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
457
|
+
function TabsSegmentedTab(props) {
|
|
458
|
+
const { className: customClassName = "", isNativeButton = true, ...rest } = props;
|
|
459
|
+
const combinedClassName = normalizeWhitespace(`
|
|
460
|
+
${TABS_SEGMENTED_TAB_CLASS_NAME.BASE}
|
|
461
|
+
${customClassName}
|
|
462
|
+
`);
|
|
463
|
+
return /* @__PURE__ */ jsx12(
|
|
464
|
+
BaseTabs6.Tab,
|
|
465
|
+
{
|
|
466
|
+
className: combinedClassName,
|
|
467
|
+
"data-slot": "tabs-segmented-tab",
|
|
468
|
+
nativeButton: isNativeButton,
|
|
469
|
+
...rest
|
|
470
|
+
}
|
|
471
|
+
);
|
|
472
|
+
}
|
|
473
|
+
var TABS_SEGMENTED_TAB_CLASS_NAME = {
|
|
474
|
+
BASE: styles14.tabs_segmented_tab
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
// src/components/tabs-underline/tabs-underline-list.tsx
|
|
478
|
+
import { Tabs as BaseTabs8 } from "@base-ui/react";
|
|
479
|
+
|
|
480
|
+
// src/components/tabs-underline/tabs-underline-indicator.tsx
|
|
481
|
+
import { Tabs as BaseTabs7 } from "@base-ui/react";
|
|
482
|
+
import styles15 from "./tabs-underline-indicator.module-6SHQHUH5.module.css";
|
|
483
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
484
|
+
function TabsUnderlineIndicator(props) {
|
|
485
|
+
const { className: customClassName = "", ...rest } = props;
|
|
486
|
+
const combinedClassName = normalizeWhitespace(`
|
|
487
|
+
${TABS_UNDERLINE_INDICATOR_CLASS_NAME.BASE}
|
|
488
|
+
${customClassName}
|
|
489
|
+
`);
|
|
490
|
+
return /* @__PURE__ */ jsx13(
|
|
491
|
+
BaseTabs7.Indicator,
|
|
492
|
+
{
|
|
493
|
+
className: combinedClassName,
|
|
494
|
+
"data-slot": "tabs-underline-indicator",
|
|
495
|
+
renderBeforeHydration: true,
|
|
496
|
+
...rest
|
|
497
|
+
}
|
|
498
|
+
);
|
|
499
|
+
}
|
|
500
|
+
var TABS_UNDERLINE_INDICATOR_CLASS_NAME = {
|
|
501
|
+
BASE: styles15.tabs_underline_indicator
|
|
502
|
+
};
|
|
503
|
+
|
|
504
|
+
// src/components/tabs-underline/tabs-underline-list.tsx
|
|
505
|
+
import styles16 from "./tabs-underline-list.module-72ZCIEAS.module.css";
|
|
506
|
+
import { jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
507
|
+
function TabsUnderlineList(props) {
|
|
508
|
+
const { className: customClassName = "", children = "", ...rest } = props;
|
|
509
|
+
const combinedClassName = normalizeWhitespace(`
|
|
510
|
+
${TABS_UNDERLINE_LIST_CLASS_NAME.BASE}
|
|
511
|
+
${customClassName}
|
|
512
|
+
`);
|
|
513
|
+
return /* @__PURE__ */ jsxs5(BaseTabs8.List, { className: combinedClassName, "data-slot": "tabs-underline-list", ...rest, children: [
|
|
514
|
+
children,
|
|
515
|
+
/* @__PURE__ */ jsx14(TabsUnderlineIndicator, {})
|
|
516
|
+
] });
|
|
517
|
+
}
|
|
518
|
+
var TABS_UNDERLINE_LIST_CLASS_NAME = {
|
|
519
|
+
BASE: styles16.tabs_underline_list
|
|
520
|
+
};
|
|
521
|
+
|
|
522
|
+
// src/components/tabs-underline/tabs-underline-tab.tsx
|
|
523
|
+
import { Tabs as BaseTabs9 } from "@base-ui/react";
|
|
524
|
+
import styles17 from "./tabs-underline-tab.module-YGSM4IUK.module.css";
|
|
525
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
526
|
+
function TabsUnderlineTab(props) {
|
|
527
|
+
const { className: customClassName = "", isNativeButton = true, ...rest } = props;
|
|
528
|
+
const combinedClassName = normalizeWhitespace(`
|
|
529
|
+
${TABS_UNDERLINE_TAB_CLASS_NAME.BASE}
|
|
530
|
+
${customClassName}
|
|
531
|
+
`);
|
|
532
|
+
return /* @__PURE__ */ jsx15(
|
|
533
|
+
BaseTabs9.Tab,
|
|
534
|
+
{
|
|
535
|
+
className: combinedClassName,
|
|
536
|
+
"data-slot": "tabs-underline-tab",
|
|
537
|
+
nativeButton: isNativeButton,
|
|
538
|
+
...rest
|
|
539
|
+
}
|
|
540
|
+
);
|
|
541
|
+
}
|
|
542
|
+
var TABS_UNDERLINE_TAB_CLASS_NAME = {
|
|
543
|
+
BASE: styles17.tabs_underline_tab
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
// src/components/tabs/tabs.tsx
|
|
547
|
+
import { Tabs as BaseTabs10 } from "@base-ui/react";
|
|
548
|
+
import styles18 from "./tabs.module-3Z5DRPPX.module.css";
|
|
549
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
550
|
+
function Tabs(props) {
|
|
551
|
+
const { className: customClassName = "", ...rest } = props;
|
|
552
|
+
const combinedClassName = normalizeWhitespace(`
|
|
553
|
+
${TABS_CLASS_NAME.BASE}
|
|
554
|
+
${customClassName}
|
|
555
|
+
`);
|
|
556
|
+
return /* @__PURE__ */ jsx16(BaseTabs10.Root, { className: combinedClassName, "data-slot": "tabs", ...rest });
|
|
557
|
+
}
|
|
558
|
+
var TABS_CLASS_NAME = {
|
|
559
|
+
BASE: styles18.tabs
|
|
560
|
+
};
|
|
561
|
+
|
|
562
|
+
// src/components/tabs/tabs-panel.tsx
|
|
563
|
+
import { Tabs as BaseTabs11 } from "@base-ui/react";
|
|
564
|
+
import styles19 from "./tabs-panel.module-VGH3G3KV.module.css";
|
|
565
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
566
|
+
function TabsPanel(props) {
|
|
567
|
+
const { className: customClassName = "", ...rest } = props;
|
|
568
|
+
const combinedClassName = normalizeWhitespace(`
|
|
569
|
+
${TABS_PANEL_CLASS_NAME.BASE}
|
|
570
|
+
${customClassName}
|
|
571
|
+
`);
|
|
572
|
+
return /* @__PURE__ */ jsx17(BaseTabs11.Panel, { className: combinedClassName, "data-slot": "tabs-panel", ...rest });
|
|
573
|
+
}
|
|
574
|
+
var TABS_PANEL_CLASS_NAME = {
|
|
575
|
+
BASE: styles19.tabs_panel
|
|
576
|
+
};
|
|
577
|
+
|
|
578
|
+
// src/components/textarea/textarea.tsx
|
|
579
|
+
import inputStyles from "./input.module-DOM3NIU5.module.css";
|
|
580
|
+
import styles20 from "./textarea.module-6GUVSFC7.module.css";
|
|
581
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
582
|
+
function Textarea(props) {
|
|
583
|
+
const {
|
|
584
|
+
className: customClassName = "",
|
|
585
|
+
isActive = false,
|
|
586
|
+
isDisabled = false,
|
|
587
|
+
isInvalid = void 0,
|
|
588
|
+
isReadOnly = false,
|
|
589
|
+
isRequired = false,
|
|
590
|
+
isRounded = false,
|
|
591
|
+
isValid = void 0,
|
|
592
|
+
rows = 2,
|
|
593
|
+
...rest
|
|
594
|
+
} = props;
|
|
595
|
+
const combinedClassName = normalizeWhitespace(`
|
|
596
|
+
${TEXTAREA_CLASS_NAME.INPUT}
|
|
597
|
+
${TEXTAREA_CLASS_NAME.BASE}
|
|
598
|
+
${isRounded ? TEXTAREA_CLASS_NAME.ROUNDED.FULL : TEXTAREA_CLASS_NAME.ROUNDED.BASE}
|
|
599
|
+
${customClassName}
|
|
600
|
+
`);
|
|
601
|
+
return /* @__PURE__ */ jsx18(
|
|
602
|
+
"textarea",
|
|
603
|
+
{
|
|
604
|
+
className: combinedClassName,
|
|
605
|
+
"data-is-active": isActive,
|
|
606
|
+
"data-is-invalid": isInvalid,
|
|
607
|
+
"data-is-valid": isValid,
|
|
608
|
+
disabled: isDisabled,
|
|
609
|
+
readOnly: isReadOnly,
|
|
610
|
+
required: isRequired,
|
|
611
|
+
rows,
|
|
612
|
+
...rest
|
|
613
|
+
}
|
|
614
|
+
);
|
|
615
|
+
}
|
|
616
|
+
var TEXTAREA_CLASS_NAME = {
|
|
617
|
+
BASE: styles20.textarea,
|
|
618
|
+
INPUT: inputStyles.input,
|
|
619
|
+
ROUNDED: {
|
|
620
|
+
BASE: inputStyles.input__rounded_base,
|
|
621
|
+
FULL: inputStyles.input__rounded_full
|
|
622
|
+
}
|
|
623
|
+
};
|
|
624
|
+
|
|
625
|
+
// src/components/tooltip/tooltip.tsx
|
|
626
|
+
import { Tooltip as BaseTooltip } from "@base-ui/react";
|
|
627
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
628
|
+
function Tooltip(props) {
|
|
629
|
+
const { ...rest } = props;
|
|
630
|
+
return /* @__PURE__ */ jsx19(BaseTooltip.Root, { "data-slot": "tooltip", disableHoverablePopup: true, ...rest });
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
// src/components/tooltip/tooltip-content.tsx
|
|
634
|
+
import { Tooltip as BaseTooltip2 } from "@base-ui/react";
|
|
635
|
+
import styles21 from "./tooltip-content.module-5MWTMSBY.module.css";
|
|
636
|
+
import { jsx as jsx20, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
637
|
+
function TooltipContent(props) {
|
|
638
|
+
const { children, className: customClassName = "", side = "top", ...rest } = props;
|
|
639
|
+
const SIDE_OFFSET = 4;
|
|
640
|
+
const combinedClassName = normalizeWhitespace(`
|
|
641
|
+
${TOOLTIP_CONTENT_CLASS_NAME.BASE}
|
|
642
|
+
${customClassName}
|
|
643
|
+
`);
|
|
644
|
+
return /* @__PURE__ */ jsx20(BaseTooltip2.Portal, { children: /* @__PURE__ */ jsxs6(
|
|
645
|
+
BaseTooltip2.Positioner,
|
|
646
|
+
{
|
|
647
|
+
className: styles21.tooltip_content_positioner,
|
|
648
|
+
side,
|
|
649
|
+
sideOffset: SIDE_OFFSET,
|
|
650
|
+
children: [
|
|
651
|
+
/* @__PURE__ */ jsx20(BaseTooltip2.Popup, { className: combinedClassName, "data-slot": "tooltip-content", ...rest, children }),
|
|
652
|
+
/* @__PURE__ */ jsx20(BaseTooltip2.Arrow, {})
|
|
653
|
+
]
|
|
654
|
+
}
|
|
655
|
+
) });
|
|
656
|
+
}
|
|
657
|
+
var TOOLTIP_CONTENT_CLASS_NAME = {
|
|
658
|
+
BASE: styles21.tooltip_content
|
|
659
|
+
};
|
|
660
|
+
|
|
661
|
+
// src/components/tooltip/tooltip-provider.tsx
|
|
662
|
+
import { Tooltip as BaseTooltip3 } from "@base-ui/react";
|
|
663
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
664
|
+
function TooltipProvider(props) {
|
|
665
|
+
const { ...rest } = props;
|
|
666
|
+
return /* @__PURE__ */ jsx21(BaseTooltip3.Provider, { "data-slot": "tooltip-provider", ...rest });
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
// src/components/tooltip/tooltip-trigger.tsx
|
|
670
|
+
import { Tooltip as BaseTooltip4 } from "@base-ui/react";
|
|
671
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
672
|
+
function TooltipTrigger(props) {
|
|
673
|
+
const { ...rest } = props;
|
|
674
|
+
return /* @__PURE__ */ jsx22(BaseTooltip4.Trigger, { "data-slot": "tooltip-trigger", ...rest });
|
|
675
|
+
}
|
|
676
|
+
export {
|
|
677
|
+
BUTTON_CLASS_NAME,
|
|
678
|
+
Button,
|
|
679
|
+
ButtonLink,
|
|
680
|
+
COLUMN_CLASS_NAME,
|
|
681
|
+
Column,
|
|
682
|
+
INPUT_CLASS_NAME,
|
|
683
|
+
Input,
|
|
684
|
+
LABEL_CLASS_NAME,
|
|
685
|
+
Label,
|
|
686
|
+
ROW_CLASS_NAME,
|
|
687
|
+
Row,
|
|
688
|
+
SPACER_CLASS_NAME,
|
|
689
|
+
SWITCH_CLASS_NAME,
|
|
690
|
+
Spacer,
|
|
691
|
+
Switch,
|
|
692
|
+
TABS_CLASS_NAME,
|
|
693
|
+
TABS_PANEL_CLASS_NAME,
|
|
694
|
+
TABS_PILL_LIST_CLASS_NAME,
|
|
695
|
+
TABS_PILL_TAB_CLASS_NAME,
|
|
696
|
+
TABS_SEGMENTED_LIST_CLASS_NAME,
|
|
697
|
+
TABS_SEGMENTED_TAB_CLASS_NAME,
|
|
698
|
+
TABS_UNDERLINE_LIST_CLASS_NAME,
|
|
699
|
+
TABS_UNDERLINE_TAB_CLASS_NAME,
|
|
700
|
+
TEXTAREA_CLASS_NAME,
|
|
701
|
+
TOOLTIP_CONTENT_CLASS_NAME,
|
|
702
|
+
Tabs,
|
|
703
|
+
TabsPanel,
|
|
704
|
+
TabsPillList,
|
|
705
|
+
TabsPillTab,
|
|
706
|
+
TabsSegmentedList,
|
|
707
|
+
TabsSegmentedTab,
|
|
708
|
+
TabsUnderlineList,
|
|
709
|
+
TabsUnderlineTab,
|
|
710
|
+
Textarea,
|
|
711
|
+
Tooltip,
|
|
712
|
+
TooltipContent,
|
|
713
|
+
TooltipProvider,
|
|
714
|
+
TooltipTrigger
|
|
715
|
+
};
|