@lolmath/ui 2.7.0 → 2.8.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/index.cjs CHANGED
@@ -25,12 +25,13 @@ __export(src_exports, {
25
25
  AccordionItem: () => AccordionItem,
26
26
  AccordionTrigger: () => AccordionTrigger,
27
27
  Button: () => Button,
28
+ Card: () => Card,
28
29
  Checkbox: () => Checkbox,
29
30
  DialogButtons: () => DialogButtons,
30
31
  DialogTrigger: () => DialogTrigger,
31
32
  Heading: () => Heading,
32
33
  Item: () => Item,
33
- Label: () => Label3,
34
+ Label: () => Label2,
34
35
  Modal: () => Modal,
35
36
  NumberField: () => NumberField,
36
37
  ProgressBar: () => ProgressBar,
@@ -39,7 +40,7 @@ __export(src_exports, {
39
40
  SearchField: () => SearchField,
40
41
  Select: () => Select,
41
42
  Slider: () => Slider,
42
- SliderLabel: () => SliderLabel,
43
+ SliderOutput: () => SliderOutput,
43
44
  Spinner: () => Spinner,
44
45
  Switch: () => Switch,
45
46
  Tab: () => Tab,
@@ -49,7 +50,8 @@ __export(src_exports, {
49
50
  TextArea: () => TextArea,
50
51
  TextField: () => TextField,
51
52
  Tooltip: () => Tooltip,
52
- TooltipTrigger: () => import_react_aria_components16.TooltipTrigger
53
+ TooltipTrigger: () => import_react_aria_components16.TooltipTrigger,
54
+ borderInverted: () => borderInverted
53
55
  });
54
56
  module.exports = __toCommonJS(src_exports);
55
57
 
@@ -59,10 +61,10 @@ var import_react_aria_components = require("react-aria-components");
59
61
  var import_tailwind_merge = require("tailwind-merge");
60
62
 
61
63
  // src/utilities/border.tsx
62
- var borderClassName = "from-[#785b28] via-[#c89c3c] to-[#c8aa6e] bg-gradient-to-t";
63
- var borderHoverClassName = "from-[#c89c3c] via-[#dcc188] to-[#f0e6d8]";
64
- var borderPressedClassName = "from-lol-gold-600 via-lol-gold-600 to-lol-gold-700";
65
- var borderDisabledClassName = "from-[#5c5b57] via-[#5c5b57] to-[#5c5b57]";
64
+ var borderGradient = "from-[#785b28] via-[#c89c3c] to-[#c8aa6e] bg-gradient-to-t";
65
+ var borderGradientHover = "from-[#c89c3c] via-[#dcc188] to-[#f0e6d8]";
66
+ var borderGradientPressed = "from-lol-gold-600 via-lol-gold-600 to-lol-gold-700";
67
+ var borderGradientDisabled = "from-[#5c5b57] via-[#5c5b57] to-[#5c5b57]";
66
68
 
67
69
  // src/utilities/resolve-classname.ts
68
70
  function resolveClassname(className, values) {
@@ -71,7 +73,14 @@ function resolveClassname(className, values) {
71
73
 
72
74
  // src/components/button.tsx
73
75
  var import_jsx_runtime = require("react/jsx-runtime");
74
- function _Button({ children, className, priority = "secondary", ...props }, ref) {
76
+ function _Button({
77
+ children,
78
+ className,
79
+ priority = "secondary",
80
+ isRounded = false,
81
+ isSquared = false,
82
+ ...props
83
+ }, ref) {
75
84
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
85
  import_react_aria_components.Button,
77
86
  {
@@ -79,13 +88,18 @@ function _Button({ children, className, priority = "secondary", ...props }, ref)
79
88
  ...props,
80
89
  className: (values) => {
81
90
  return (0, import_tailwind_merge.twMerge)(
82
- "font-[beaufort] font-black uppercase transition-colors duration-200 outline-none bg-gradient-to-t",
83
- borderClassName,
84
- values.isHovered && borderHoverClassName,
85
- values.isPressed && borderPressedClassName,
86
- values.isDisabled && borderDisabledClassName,
87
- values.isFocused && "",
88
- values.isFocusVisible && "outline outline-yellow-50 outline-offset-2",
91
+ "transition-colors duration-200 outline-none",
92
+ (priority === "primary" || priority === "secondary") && [
93
+ "bg-gradient-to-t",
94
+ borderGradient,
95
+ values.isHovered && borderGradientHover,
96
+ values.isPressed && borderGradientPressed,
97
+ values.isDisabled && borderGradientDisabled,
98
+ values.isFocused && "",
99
+ values.isFocusVisible && "outline outline-yellow-50 outline-offset-2"
100
+ ],
101
+ isRounded && "rounded-full aspect-square",
102
+ isSquared && "aspect-square",
89
103
  resolveClassname(className, values)
90
104
  );
91
105
  },
@@ -94,17 +108,26 @@ function _Button({ children, className, priority = "secondary", ...props }, ref)
94
108
  "span",
95
109
  {
96
110
  className: (0, import_tailwind_merge.twMerge)(
97
- "block m-0.5 px-4 py-2 bg-lol-gray-950 transition-colors duration-200",
98
- priority === "primary" && "bg-gradient-to-b",
99
- "text-[#cdbe91] tracking-wide",
100
- values.isHovered && "text-lol-gold-100",
101
- values.isPressed && "text-lol-gray-500",
111
+ "block transition-colors duration-200 text-lol-gold-300 tracking-wide font-beaufort font-black uppercase",
112
+ (priority === "primary" || priority === "secondary") && [
113
+ "m-0.5 px-4 py-2 bg-lol-gray-950"
114
+ ],
115
+ priority === "primary" && "from-lol-gold-700 via-lol-gold-800 to-lol-gold-900 bg-gradient-to-b",
116
+ priority === "tertiary" && !isRounded && 'relative after:content-[""] after:absolute after:-top-2 after:-bottom-2 after:-left-2 after:-right-2',
117
+ (isSquared || isRounded) && "aspect-square p-1.5",
118
+ isRounded && "rounded-full",
119
+ values.isHovered && [
120
+ "text-lol-gold-100",
121
+ priority === "primary" && "from-lol-gold-700 via-lol-gold-600 to-lol-gold-600",
122
+ priority === "tertiary" && (isRounded || isSquared) && "bg-lol-gray-900"
123
+ ],
124
+ values.isPressed && [
125
+ "text-lol-gray-500",
126
+ priority === "primary" && "text-lol-gold-600 from-lol-gold-900 via-lol-gold-900 to-lol-gold-900"
127
+ ],
102
128
  values.isDisabled && "text-lol-gray-500",
103
129
  values.isFocused && "",
104
- values.isFocusVisible && "",
105
- priority === "primary" && "from-lol-gold-700 via-lol-gold-800 to-lol-gold-900",
106
- priority === "primary" && values.isHovered && "from-[#604522] via-[#846745] to-[#725634]",
107
- priority === "primary" && values.isPressed && "from-[#261b0d] via-[#261b0d] to-[#261b0d] text-[#67604c]"
130
+ values.isFocusVisible && ""
108
131
  ),
109
132
  children: typeof children === "function" ? children(values) : children
110
133
  }
@@ -141,10 +164,10 @@ function Select({
141
164
  {
142
165
  className: (buttonValues) => (0, import_tailwind_merge2.twMerge)(
143
166
  "inline-block outline-none",
144
- borderClassName,
145
- buttonValues.isHovered && borderHoverClassName,
146
- (buttonValues.isPressed || values.isOpen) && borderPressedClassName,
147
- buttonValues.isDisabled && borderDisabledClassName,
167
+ borderGradient,
168
+ buttonValues.isHovered && borderGradientHover,
169
+ (buttonValues.isPressed || values.isOpen) && borderGradientPressed,
170
+ buttonValues.isDisabled && borderGradientDisabled,
148
171
  buttonValues.isFocused && "",
149
172
  buttonValues.isFocusVisible && outlineClassName
150
173
  ),
@@ -205,69 +228,60 @@ var import_tailwind_merge3 = require("tailwind-merge");
205
228
  var import_jsx_runtime3 = require("react/jsx-runtime");
206
229
  function SearchField({
207
230
  inputProps = {},
231
+ borderProps = {},
232
+ children,
208
233
  ...props
209
234
  }) {
210
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
211
- import_react_aria_components3.SearchField,
212
- {
213
- ...props,
214
- className: (values) => {
215
- return (0, import_tailwind_merge3.twMerge)(
216
- "flex flex-col outline-none",
217
- borderClassName,
235
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_aria_components3.SearchField, { ...props, children: (values) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
236
+ typeof children === "function" ? children(values) : children,
237
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
238
+ "div",
239
+ {
240
+ ...borderProps,
241
+ className: (0, import_tailwind_merge3.twMerge)(
242
+ "outline-none p-px flex",
243
+ borderGradient,
218
244
  "focus-within:from-lol-gold-300 focus-within:via-lol-gold-200 focus-within:to-lol-gold-50",
219
- props.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
220
- resolveClassname(props.className, values)
221
- );
222
- },
223
- children: ({ state, isDisabled }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
224
- "div",
225
- {
226
- className: (0, import_tailwind_merge3.twMerge)(
227
- "m-px bg-black flex flex-row focus-within:from-lol-gray-950 focus-within:to-lol-gray-900 focus-within:bg-gradient-to-b",
228
- props.isDisabled && "bg-lol-gray-950"
229
- ),
230
- children: [
231
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
232
- import_react_aria_components3.Input,
233
- {
234
- ...inputProps,
235
- className: (values) => {
236
- const finalClassName = resolveClassname(
237
- inputProps.className,
238
- values
239
- );
240
- return (0, import_tailwind_merge3.twMerge)(
241
- "bg-transparent grow py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel tracking-wide pl-6",
242
- props.isDisabled && "text-lol-gray-500",
243
- finalClassName
244
- );
245
- },
246
- type: "text",
247
- style: {
248
- backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAERElEQVR42uycz0tVQRTH54lamBakLUStQKhEW6V/gC2qhRgRqJURVJj9oBL7oWVBWFj0O/pd2EbJ3ARt2uW6tFUWZkhkiYQVSBZk6esc7rkgkXfm3rkzb957c+CL8Obcc+d+5vcPjESjUWZtdkuxCCwgC8gCsoAsIAvIArKArFlAASzVj/P46KuE+OgFuSvVAJKsqWWgclApaBkoDzSP0n+ARkCDoD5QD6gXNB1XNSiA5YP2graACjz85oAWgrBoN9JvH0GdoBugT4nWB2XThw2BmjhwZrMCenaIYmUnCqAq0ABoDyg9hHjpFAtjVsczIGyut0CPQDkK8ooxu+gdqfEGKAP0GFSvIc/19K6MeAGEpfkQVKGx5lfQO1PjAdB1UGUM+s9KerfRgLDT3OXDfxh0FrSWRqm5oCxQEWgdpb33EQ/fvUkloIifTft/ZtLZNLLkCILBIbsbNCVQaNUEa7FA7G+gFaAxFTNpmRp0WhDOE1AJ9RlTAv7T5FtMf3mGE8xW05oYluwOAb+roA2g7wHeMUEz8MsCvtsFa5s2QLtBaRwfnA81SK6nsP03UiwvS6M8GQEIn6kV6HN20gfKWpRiDXP8alWsDIIELKNFqJc1UxMJyzDWUYGFcZkJgFZz0j/QkiBs66bYXlZuAqBVnPQuRfs40wLgS00AtJyT3qNw3tYjmTctgHI56f0KAfVL5k0LoCxO+heFgMYk8xaz7Y6EtSCAeLPiHIX5XSSZNy2ARjnpxQoBlUjmTQugt5LzJBkrl8ybFkAvOenVivo2dxvEy/pMAMSbiyxlzslG2FZFsbXOwYIAesH4B3nnQJkh5jOTYnoZ5qnXBEA45e/g+ODezD1QJIQ8RigWb7+nQ8USJ2hfgSedkxyfGuZsdqVIwjlPsbxskvLETAGE1fm+gN8B5pxhZQVsVlgrGgV825mi83uZ0j0J+irgV0lrqBrB96WQ72vQZgH/cVCLSTNp1xDOPkFf7D9wAx6PdNpAa5hz/SWNlEe/Ydo78hXdY54P2qoKkMyxj2u3mb+zMVWGTfGSiKOuYx/X9jPnaCfWdhF0yMTVPI4geLr51ABIOOIdMXG74ydoPeiOAZBwQtlkGiC038y5moK1ScWm2S8fvm1hjWwqFpW4sV5EnfdkSE0YYy0BPfDxXCtNRYwDxKgG4UlnIVX5kQAxRujZQor1mTkHiO0+YpwixXSYFy0IPNTDvSI8NsJrwPkzFrQTNBMepO2UZ2z2a8C4/LhLsEQNL1qcCDLM67rrhx/6nCRrWKJ1FLNO8JkWKqTjpjQx1RalAeGmj2eOgc4kCyAXEi51RK/h4d2kN8kEyIWEM/lrAnC2MefmflIBciEdBF0JG06iAHIhNfxnsSoFJ5EAzVzRXwgLjs5hXqcdBv1hziZdp2ywRASE1hxWoIj95ybJ1QdZQBaQBWQBWUAWkDULyAKygPTYXwEGAArW2QJagQgvAAAAAElFTkSuQmCC')",
249
- backgroundRepeat: "no-repeat",
250
- backgroundPosition: "5px center",
251
- backgroundSize: "16px"
252
- }
253
- }
254
- ),
255
- state.value.length > 0 && !isDisabled && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
256
- import_react_aria_components3.Button,
257
- {
258
- className: (buttonValues) => (0, import_tailwind_merge3.twMerge)(
259
- "font-black text-[#cdbe91] text-xs px-4",
260
- buttonValues.isHovered && "text-lol-gold-100",
261
- buttonValues.isPressed && "text-[#463714]"
262
- ),
263
- children: "\u2715"
245
+ values.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
246
+ resolveClassname(borderProps?.className, values),
247
+ values.isDisabled && "bg-lol-gray-950"
248
+ ),
249
+ children: [
250
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
251
+ import_react_aria_components3.Input,
252
+ {
253
+ ...inputProps,
254
+ className: (values2) => (0, import_tailwind_merge3.twMerge)(
255
+ "bg-black w-full min-h-full py-2 px-3 outline-none pl-6",
256
+ "text-lol-gold-50 text-xs font-spiegel tracking-wide",
257
+ "focus-within:from-lol-gray-950 focus-within:to-lol-gray-900 focus-within:bg-gradient-to-b",
258
+ values2.isDisabled && "text-lol-gray-500",
259
+ resolveClassname(inputProps.className, values2)
260
+ ),
261
+ type: "text",
262
+ style: {
263
+ backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAERElEQVR42uycz0tVQRTH54lamBakLUStQKhEW6V/gC2qhRgRqJURVJj9oBL7oWVBWFj0O/pd2EbJ3ARt2uW6tFUWZkhkiYQVSBZk6esc7rkgkXfm3rkzb957c+CL8Obcc+d+5vcPjESjUWZtdkuxCCwgC8gCsoAsIAvIArKArFlAASzVj/P46KuE+OgFuSvVAJKsqWWgclApaBkoDzSP0n+ARkCDoD5QD6gXNB1XNSiA5YP2graACjz85oAWgrBoN9JvH0GdoBugT4nWB2XThw2BmjhwZrMCenaIYmUnCqAq0ABoDyg9hHjpFAtjVsczIGyut0CPQDkK8ooxu+gdqfEGKAP0GFSvIc/19K6MeAGEpfkQVKGx5lfQO1PjAdB1UGUM+s9KerfRgLDT3OXDfxh0FrSWRqm5oCxQEWgdpb33EQ/fvUkloIifTft/ZtLZNLLkCILBIbsbNCVQaNUEa7FA7G+gFaAxFTNpmRp0WhDOE1AJ9RlTAv7T5FtMf3mGE8xW05oYluwOAb+roA2g7wHeMUEz8MsCvtsFa5s2QLtBaRwfnA81SK6nsP03UiwvS6M8GQEIn6kV6HN20gfKWpRiDXP8alWsDIIELKNFqJc1UxMJyzDWUYGFcZkJgFZz0j/QkiBs66bYXlZuAqBVnPQuRfs40wLgS00AtJyT3qNw3tYjmTctgHI56f0KAfVL5k0LoCxO+heFgMYk8xaz7Y6EtSCAeLPiHIX5XSSZNy2ARjnpxQoBlUjmTQugt5LzJBkrl8ybFkAvOenVivo2dxvEy/pMAMSbiyxlzslG2FZFsbXOwYIAesH4B3nnQJkh5jOTYnoZ5qnXBEA45e/g+ODezD1QJIQ8RigWb7+nQ8USJ2hfgSedkxyfGuZsdqVIwjlPsbxskvLETAGE1fm+gN8B5pxhZQVsVlgrGgV825mi83uZ0j0J+irgV0lrqBrB96WQ72vQZgH/cVCLSTNp1xDOPkFf7D9wAx6PdNpAa5hz/SWNlEe/Ydo78hXdY54P2qoKkMyxj2u3mb+zMVWGTfGSiKOuYx/X9jPnaCfWdhF0yMTVPI4geLr51ABIOOIdMXG74ydoPeiOAZBwQtlkGiC038y5moK1ScWm2S8fvm1hjWwqFpW4sV5EnfdkSE0YYy0BPfDxXCtNRYwDxKgG4UlnIVX5kQAxRujZQor1mTkHiO0+YpwixXSYFy0IPNTDvSI8NsJrwPkzFrQTNBMepO2UZ2z2a8C4/LhLsEQNL1qcCDLM67rrhx/6nCRrWKJ1FLNO8JkWKqTjpjQx1RalAeGmj2eOgc4kCyAXEi51RK/h4d2kN8kEyIWEM/lrAnC2MefmflIBciEdBF0JG06iAHIhNfxnsSoFJ5EAzVzRXwgLjs5hXqcdBv1hziZdp2ywRASE1hxWoIj95ybJ1QdZQBaQBWQBWUAWkDULyAKygPTYXwEGAArW2QJagQgvAAAAAElFTkSuQmCC')",
264
+ backgroundRepeat: "no-repeat",
265
+ backgroundPosition: "5px center",
266
+ backgroundSize: "16px"
264
267
  }
265
- )
266
- ]
267
- }
268
- )
269
- }
270
- );
268
+ }
269
+ ),
270
+ values.state.value.length > 0 && !values.isDisabled && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
271
+ import_react_aria_components3.Button,
272
+ {
273
+ className: (buttonValues) => (0, import_tailwind_merge3.twMerge)(
274
+ "font-black text-[#cdbe91] text-xs px-4 bg-black",
275
+ buttonValues.isHovered && "text-lol-gold-100",
276
+ buttonValues.isPressed && "text-[#463714]"
277
+ ),
278
+ children: "\u2715"
279
+ }
280
+ )
281
+ ]
282
+ }
283
+ )
284
+ ] }) });
271
285
  }
272
286
 
273
287
  // src/components/slider/slider.tsx
@@ -385,11 +399,18 @@ function Slider({
385
399
  }
386
400
  );
387
401
  }
388
- function SliderLabel({ children }) {
389
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center justify-between font-spiegel text-xs text-lol-gray-300 font-normal tracking-wide", children: [
390
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_aria_components4.Label, { className: "", children }),
391
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_aria_components4.SliderOutput, { className: "", children: (sliderRenderProps) => sliderRenderProps.state.values.map((_, i) => sliderRenderProps.state.getThumbValueLabel(i)).join(" \u2013 ") })
392
- ] });
402
+ function SliderOutput(props) {
403
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
404
+ import_react_aria_components4.SliderOutput,
405
+ {
406
+ className: (values) => (0, import_tailwind_merge4.twMerge)(
407
+ "font-spiegel text-xs text-lol-gray-300 font-normal tracking-wide",
408
+ resolveClassname(props.className, values)
409
+ ),
410
+ children: (sliderRenderProps) => sliderRenderProps.state.values.map((_, i) => sliderRenderProps.state.getThumbValueLabel(i)).join(" \u2013 "),
411
+ ...props
412
+ }
413
+ );
393
414
  }
394
415
 
395
416
  // src/components/switch.tsx
@@ -413,10 +434,10 @@ function Switch({
413
434
  {
414
435
  className: (0, import_tailwind_merge5.twMerge)(
415
436
  "h-6 w-14 shrink-0 cursor-default rounded-full p-0.5",
416
- borderClassName,
417
- values.isHovered && borderHoverClassName,
418
- values.isPressed && borderPressedClassName,
419
- values.isDisabled && borderDisabledClassName,
437
+ borderGradient,
438
+ values.isHovered && borderGradientHover,
439
+ values.isPressed && borderGradientPressed,
440
+ values.isDisabled && borderGradientDisabled,
420
441
  values.isFocused && "",
421
442
  values.isFocusVisible && "outline outline-1 outline-offset-2 outline-yellow-50"
422
443
  ),
@@ -437,10 +458,10 @@ function Switch({
437
458
  className: (0, import_tailwind_merge5.twMerge)(
438
459
  "absolute -left-2 -top-1.5 h-8 w-8 rounded-full p-0.5 shadow-md ring-0 transition-[left] duration-200 ease-in-out",
439
460
  values.isSelected && "left-[calc(100%-1.75rem)]",
440
- borderClassName,
441
- values.isHovered && borderHoverClassName,
442
- values.isPressed && borderPressedClassName,
443
- values.isDisabled && borderDisabledClassName
461
+ borderGradient,
462
+ values.isHovered && borderGradientHover,
463
+ values.isPressed && borderGradientPressed,
464
+ values.isDisabled && borderGradientDisabled
444
465
  ),
445
466
  children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "block h-full w-full rounded-full bg-lol-gray-950" })
446
467
  }
@@ -465,7 +486,7 @@ function ProgressBar({
465
486
  ...props
466
487
  }) {
467
488
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_aria_components6.ProgressBar, { className: "flex w-56 flex-col gap-1 text-sm", ...props, children: ({ percentage, valueText }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
468
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex font-[beaufort] font-bold uppercase text-lol-gold-100", children: [
489
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex font-beaufort font-bold uppercase text-lol-gold-100", children: [
469
490
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_aria_components6.Label, { className: "flex-1 ", children: label ?? "Loading" }),
470
491
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { children: valueText })
471
492
  ] }),
@@ -473,7 +494,7 @@ function ProgressBar({
473
494
  "div",
474
495
  {
475
496
  className: (0, import_tailwind_merge6.twMerge)(
476
- borderClassName,
497
+ borderGradient,
477
498
  "-ml-0.5 -mr-1 h-3 rounded-full p-px"
478
499
  ),
479
500
  children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
@@ -535,7 +556,7 @@ function Accordion({ children, className }) {
535
556
  "div",
536
557
  {
537
558
  className: (0, import_tailwind_merge7.twMerge)(
538
- "bg-lol-blue-950 border-lol-gold-500 rounded border overflow-hidden",
559
+ "bg-lol-blue-950 border-lol-gold-500 border",
539
560
  className
540
561
  ),
541
562
  style: {
@@ -612,44 +633,43 @@ var import_tailwind_merge8 = require("tailwind-merge");
612
633
  var import_jsx_runtime8 = require("react/jsx-runtime");
613
634
  function TextField({
614
635
  inputProps = {},
636
+ borderProps = {},
637
+ children,
615
638
  ...props
616
639
  }) {
617
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
618
- import_react_aria_components7.TextField,
619
- {
620
- ...props,
621
- className: (values) => (0, import_tailwind_merge8.twMerge)(
622
- "flex flex-col outline-none",
623
- borderClassName,
624
- "focus-within:from-lol-gold-300 focus-within:via-lol-gold-200 focus-within:to-lol-gold-50",
625
- props.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
626
- resolveClassname(props.className, values)
627
- ),
628
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
629
- "div",
630
- {
631
- className: (0, import_tailwind_merge8.twMerge)(
632
- "m-px bg-black flex flex-row focus-within:from-lol-gray-950 focus-within:to-lol-gray-900 focus-within:bg-gradient-to-b",
633
- props.isDisabled && "bg-lol-gray-950"
634
- ),
635
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
636
- import_react_aria_components7.Input,
637
- {
638
- ...inputProps,
639
- className: (values) => {
640
- return (0, import_tailwind_merge8.twMerge)(
641
- "bg-transparent grow py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel tracking-wide",
642
- values.isDisabled && "text-lol-gray-500",
643
- resolveClassname(inputProps.className, values)
644
- );
645
- },
646
- type: "text"
640
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_aria_components7.TextField, { ...props, children: (values) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
641
+ typeof children === "function" ? children(values) : children,
642
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
643
+ "div",
644
+ {
645
+ ...borderProps,
646
+ className: (0, import_tailwind_merge8.twMerge)(
647
+ "outline-none p-px",
648
+ borderGradient,
649
+ "focus-within:from-lol-gold-300 focus-within:via-lol-gold-200 focus-within:to-lol-gold-50",
650
+ values.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
651
+ resolveClassname(borderProps?.className, values),
652
+ values.isDisabled && "bg-lol-gray-950"
653
+ ),
654
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
655
+ import_react_aria_components7.Input,
656
+ {
657
+ type: "text",
658
+ ...inputProps,
659
+ className: (values2) => {
660
+ return (0, import_tailwind_merge8.twMerge)(
661
+ "bg-black w-full min-h-full py-2 px-3 outline-none",
662
+ "text-lol-gold-50 text-xs font-spiegel tracking-wide",
663
+ "focus-within:from-lol-gray-950 focus-within:to-lol-gray-900 focus-within:bg-gradient-to-b",
664
+ values2.isDisabled && "text-lol-gray-500",
665
+ resolveClassname(inputProps.className, values2)
666
+ );
647
667
  }
648
- )
649
- }
650
- )
651
- }
652
- );
668
+ }
669
+ )
670
+ }
671
+ )
672
+ ] }) });
653
673
  }
654
674
 
655
675
  // src/components/radio-group.tsx
@@ -699,7 +719,7 @@ function Radio({ ...props }) {
699
719
  var import_react_aria_components9 = require("react-aria-components");
700
720
  var import_tailwind_merge10 = require("tailwind-merge");
701
721
  var import_jsx_runtime10 = require("react/jsx-runtime");
702
- function Label3({ ...props }) {
722
+ function Label2({ ...props }) {
703
723
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
704
724
  import_react_aria_components9.Label,
705
725
  {
@@ -719,46 +739,59 @@ var import_jsx_runtime11 = require("react/jsx-runtime");
719
739
  function NumberField({
720
740
  inputProps = {},
721
741
  groupProps = {},
742
+ children,
722
743
  ...props
723
744
  }) {
724
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_aria_components10.NumberField, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
725
- import_react_aria_components10.Group,
726
- {
727
- ...groupProps,
728
- className: (values) => {
729
- const finalClassName = resolveClassname(groupProps.className, values);
730
- return (0, import_tailwind_merge11.twMerge)(
731
- "grid grid-cols-[auto_1fr_auto] outline-none gap-px p-px",
732
- borderClassName,
733
- "focus-within:from-lol-gold-300 focus-within:via-lol-gold-200 focus-within:to-lol-gold-50",
734
- props.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
735
- finalClassName
736
- );
737
- },
738
- children: [
739
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_aria_components10.Button, { className: "text-lol-gray-50 px-2.5 bg-black", slot: "decrement", children: "-" }),
740
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
741
- import_react_aria_components10.Input,
742
- {
743
- ...inputProps,
744
- className: (values) => {
745
- const finalClassName = resolveClassname(
746
- inputProps.className,
747
- values
748
- );
749
- return (0, import_tailwind_merge11.twMerge)(
750
- "bg-black w-full py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel",
751
- values.isDisabled && "text-lol-gray-500 bg-lol-gray-950",
752
- values.isFocused && "from-lol-gray-950 to-lol-gray-900 bg-gradient-to-b",
753
- finalClassName
754
- );
745
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_aria_components10.NumberField, { ...props, children: (values) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
746
+ typeof children === "function" ? children(values) : children,
747
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
748
+ import_react_aria_components10.Group,
749
+ {
750
+ ...groupProps,
751
+ className: (values2) => {
752
+ return (0, import_tailwind_merge11.twMerge)(
753
+ "grid grid-cols-[auto_1fr_auto] outline-none gap-px p-px",
754
+ borderGradient,
755
+ "focus-within:from-lol-gold-300 focus-within:via-lol-gold-200 focus-within:to-lol-gold-50",
756
+ props.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
757
+ resolveClassname(groupProps.className, values2)
758
+ );
759
+ },
760
+ children: [
761
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
762
+ import_react_aria_components10.Button,
763
+ {
764
+ className: "text-lol-gray-50 px-2.5 bg-black",
765
+ slot: "decrement",
766
+ children: "-"
755
767
  }
756
- }
757
- ),
758
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_aria_components10.Button, { className: "text-lol-gray-50 px-2.5 bg-black", slot: "increment", children: "+" })
759
- ]
760
- }
761
- ) });
768
+ ),
769
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
770
+ import_react_aria_components10.Input,
771
+ {
772
+ ...inputProps,
773
+ className: (values2) => {
774
+ return (0, import_tailwind_merge11.twMerge)(
775
+ "bg-black w-full py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel",
776
+ values2.isDisabled && "text-lol-gray-500 bg-lol-gray-950",
777
+ values2.isFocused && "from-lol-gray-950 to-lol-gray-900 bg-gradient-to-b",
778
+ resolveClassname(inputProps.className, values2)
779
+ );
780
+ }
781
+ }
782
+ ),
783
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
784
+ import_react_aria_components10.Button,
785
+ {
786
+ className: "text-lol-gray-50 px-2.5 bg-black",
787
+ slot: "increment",
788
+ children: "+"
789
+ }
790
+ )
791
+ ]
792
+ }
793
+ )
794
+ ] }) });
762
795
  }
763
796
 
764
797
  // src/components/spinner/spinner.tsx
@@ -824,7 +857,7 @@ function Modal({
824
857
  {
825
858
  className: (0, import_tailwind_merge13.twMerge)(
826
859
  "text-left align-middle shadow-xl p-0.5 bg-gradient-to-t",
827
- borderPressedClassName
860
+ borderGradientPressed
828
861
  ),
829
862
  children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "bg-black", children: typeof children === "function" ? children(dialogRenderProps) : children })
830
863
  }
@@ -984,43 +1017,42 @@ var import_tailwind_merge16 = require("tailwind-merge");
984
1017
  var import_jsx_runtime16 = require("react/jsx-runtime");
985
1018
  function TextArea({
986
1019
  textAreaProps = {},
1020
+ borderProps = {},
1021
+ children,
987
1022
  ...props
988
1023
  }) {
989
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
990
- import_react_aria_components14.TextField,
991
- {
992
- ...props,
993
- className: (values) => (0, import_tailwind_merge16.twMerge)(
994
- "flex flex-col outline-none",
995
- borderClassName,
996
- "focus-within:from-lol-gold-300 focus-within:via-lol-gold-200 focus-within:to-lol-gold-50",
997
- props.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
998
- resolveClassname(props.className, values)
999
- ),
1000
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1001
- "div",
1002
- {
1003
- className: (0, import_tailwind_merge16.twMerge)(
1004
- "m-px bg-black flex flex-row focus-within:from-lol-gray-950 focus-within:to-lol-gray-900 focus-within:bg-gradient-to-b",
1005
- props.isDisabled && "bg-lol-gray-950"
1006
- ),
1007
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1008
- import_react_aria_components14.TextArea,
1009
- {
1010
- ...textAreaProps,
1011
- className: (values) => {
1012
- return (0, import_tailwind_merge16.twMerge)(
1013
- "bg-transparent grow py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel tracking-wide",
1014
- values.isDisabled && "text-lol-gray-500",
1015
- resolveClassname(textAreaProps.className, values)
1016
- );
1017
- }
1024
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components14.TextField, { ...props, children: (values) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
1025
+ typeof children === "function" ? children(values) : children,
1026
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1027
+ "div",
1028
+ {
1029
+ ...borderProps,
1030
+ className: (0, import_tailwind_merge16.twMerge)(
1031
+ "outline-none p-px flex",
1032
+ borderGradient,
1033
+ "focus-within:from-lol-gold-300 focus-within:via-lol-gold-200 focus-within:to-lol-gold-50",
1034
+ values.isDisabled && "from-lol-gray-700 via-lol-gray-700 to-lol-gray-700",
1035
+ resolveClassname(borderProps?.className, values),
1036
+ values.isDisabled && "bg-lol-gray-950"
1037
+ ),
1038
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1039
+ import_react_aria_components14.TextArea,
1040
+ {
1041
+ ...textAreaProps,
1042
+ className: (values2) => {
1043
+ return (0, import_tailwind_merge16.twMerge)(
1044
+ "bg-black w-full min-h-full py-2 px-3 outline-none",
1045
+ "text-lol-gold-50 text-xs font-spiegel tracking-wide",
1046
+ "focus-within:from-lol-gray-950 focus-within:to-lol-gray-900 focus-within:bg-gradient-to-b",
1047
+ values2.isDisabled && "text-lol-gray-500",
1048
+ resolveClassname(textAreaProps.className, values2)
1049
+ );
1018
1050
  }
1019
- )
1020
- }
1021
- )
1022
- }
1023
- );
1051
+ }
1052
+ )
1053
+ }
1054
+ )
1055
+ ] }) });
1024
1056
  }
1025
1057
 
1026
1058
  // src/components/tooltip.tsx
@@ -1035,7 +1067,7 @@ function Tooltip({ children, ...props }) {
1035
1067
  ...props,
1036
1068
  className: (values) => (0, import_tailwind_merge17.twMerge)(
1037
1069
  `p-0.5 drop-shadow-lg bg-black`,
1038
- borderClassName,
1070
+ borderGradient,
1039
1071
  "w-[280px]",
1040
1072
  values.isEntering && "animate-in fade-in data-[placement=bottom]:slide-in-from-top-1 data-[placement=top]:slide-in-from-bottom-1 ease-out duration-200 fill-mode-forwards",
1041
1073
  values.isExiting && "animate-out fade-out data-[placement=bottom]:slide-out-to-top-1 data-[placement=top]:slide-out-to-bottom-1 ease-in duration-150 fill-mode-forwards",
@@ -1079,6 +1111,40 @@ function Tooltip({ children, ...props }) {
1079
1111
  }
1080
1112
  );
1081
1113
  }
1114
+
1115
+ // src/components/card.tsx
1116
+ var import_tailwind_merge18 = require("tailwind-merge");
1117
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1118
+ function Card({ children, className, style, borderProps }) {
1119
+ const r = `1rem`;
1120
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1121
+ "div",
1122
+ {
1123
+ ...borderProps ?? {},
1124
+ className: (0, import_tailwind_merge18.twMerge)("p-[3px]", borderGradient, borderProps?.className),
1125
+ style: {
1126
+ WebkitMask: borderInverted(r),
1127
+ mask: borderInverted(r),
1128
+ ...borderProps?.style ?? {}
1129
+ },
1130
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1131
+ "div",
1132
+ {
1133
+ className: (0, import_tailwind_merge18.twMerge)("bg-black w-full", className),
1134
+ style: {
1135
+ WebkitMask: borderInverted(r),
1136
+ mask: borderInverted(r),
1137
+ ...style ?? {}
1138
+ },
1139
+ children
1140
+ }
1141
+ )
1142
+ }
1143
+ );
1144
+ }
1145
+ function borderInverted(r) {
1146
+ return `radial-gradient(${r} at ${r} ${r},#0000 98%,#000) -${r} -${r}`;
1147
+ }
1082
1148
  // Annotate the CommonJS export names for ESM import in node:
1083
1149
  0 && (module.exports = {
1084
1150
  Accordion,
@@ -1086,6 +1152,7 @@ function Tooltip({ children, ...props }) {
1086
1152
  AccordionItem,
1087
1153
  AccordionTrigger,
1088
1154
  Button,
1155
+ Card,
1089
1156
  Checkbox,
1090
1157
  DialogButtons,
1091
1158
  DialogTrigger,
@@ -1100,7 +1167,7 @@ function Tooltip({ children, ...props }) {
1100
1167
  SearchField,
1101
1168
  Select,
1102
1169
  Slider,
1103
- SliderLabel,
1170
+ SliderOutput,
1104
1171
  Spinner,
1105
1172
  Switch,
1106
1173
  Tab,
@@ -1110,6 +1177,7 @@ function Tooltip({ children, ...props }) {
1110
1177
  TextArea,
1111
1178
  TextField,
1112
1179
  Tooltip,
1113
- TooltipTrigger
1180
+ TooltipTrigger,
1181
+ borderInverted
1114
1182
  });
1115
1183
  //# sourceMappingURL=index.cjs.map