@dalexto/lexsys-registry 0.1.2 → 0.1.3
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/package.json +1 -1
- package/templates/blocks/AuthForm/AuthForm.tsx +7 -3
- package/templates/blocks/AuthForm/AuthForm.variants.ts +8 -2
- package/templates/blocks/CommandPalette/CommandPalette.tsx +11 -8
- package/templates/blocks/CommandPalette/CommandPalette.variants.ts +6 -6
- package/templates/blocks/DataTable/DataTable.variants.ts +5 -4
- package/templates/blocks/FilterToolbar/FilterToolbar.tsx +8 -1
- package/templates/blocks/FilterToolbar/FilterToolbar.variants.ts +11 -5
- package/templates/blocks/FormField/FormField.variants.ts +1 -1
- package/templates/blocks/PageHeader/PageHeader.variants.ts +6 -5
- package/templates/blocks/Sidebar/Sidebar.tsx +115 -2
- package/templates/blocks/Sidebar/Sidebar.types.ts +30 -0
- package/templates/blocks/Sidebar/Sidebar.variants.ts +160 -33
- package/templates/blocks/StatsCard/StatsCard.variants.ts +7 -6
- package/templates/primitives/DatePicker/DatePicker.tsx +11 -1
- package/templates/primitives/DatePicker/DatePicker.types.ts +4 -1
- package/templates/primitives/DatePicker/DatePicker.variants.ts +11 -2
- package/templates/primitives/Toolbar/Toolbar.variants.ts +4 -2
- package/templates/styles/theme.css +6 -1
- package/templates/styles/tokens.css +123 -38
- package/templates/templates/DashboardShell/DashboardShell.variants.ts +19 -4
- package/templates/templates/SettingsPageLayout/SettingsPageLayout.variants.ts +16 -7
|
@@ -61,11 +61,11 @@ export const sidebarDesktopClasses = ({
|
|
|
61
61
|
side = "left",
|
|
62
62
|
}: SidebarShellOptions = {}): string => {
|
|
63
63
|
const classes = [
|
|
64
|
-
"lex-sidebar__desktop hidden h-full shrink-0 bg-
|
|
64
|
+
"lex-sidebar__desktop hidden h-full shrink-0 bg-(--lex-sidebar-desktop-background) md:flex md:flex-col",
|
|
65
65
|
"overflow-hidden transition-[width,transform] duration-(--lex-sidebar-transition-duration) ease-(--lex-sidebar-transition-easing) motion-reduce:transition-none",
|
|
66
66
|
side === "right"
|
|
67
|
-
? "border-s border-
|
|
68
|
-
: "border-e border-
|
|
67
|
+
? "border-s border-(--lex-sidebar-desktop-border-color)"
|
|
68
|
+
: "border-e border-(--lex-sidebar-desktop-border-color)",
|
|
69
69
|
]
|
|
70
70
|
|
|
71
71
|
if (collapsible === "icon" && collapsed) {
|
|
@@ -91,21 +91,34 @@ export const sidebarRailClasses = ({
|
|
|
91
91
|
"lex-sidebar__rail absolute inset-y-0 hidden w-4 md:block",
|
|
92
92
|
side === "right" ? "-start-2" : "-end-2",
|
|
93
93
|
"cursor-pointer border-0 bg-transparent p-0 outline-none",
|
|
94
|
-
"after:absolute after:inset-y-0 after:w-px after:bg-
|
|
94
|
+
"after:absolute after:inset-y-0 after:w-px after:bg-(--lex-sidebar-desktop-border-color)",
|
|
95
95
|
side === "right" ? "after:start-2" : "after:end-2",
|
|
96
96
|
].join(" ")
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
export const sidebarMobileBarClasses = (): string => {
|
|
100
|
+
return [
|
|
101
|
+
"lex-sidebar__mobile-bar flex items-center",
|
|
102
|
+
"gap-(--lex-sidebar-mobile-bar-gap)",
|
|
103
|
+
"border-b border-(--lex-sidebar-mobile-bar-border-color)",
|
|
104
|
+
"bg-(--lex-sidebar-mobile-bar-background)",
|
|
105
|
+
"px-(--lex-sidebar-mobile-bar-padding-x) py-(--lex-sidebar-mobile-bar-padding-y)",
|
|
106
|
+
].join(" ")
|
|
107
|
+
}
|
|
108
|
+
|
|
99
109
|
export const sidebarMobileHeaderClasses = (): string => {
|
|
100
|
-
return "lex-sidebar__mobile-header flex min-w-0 flex-1 items-center gap-
|
|
110
|
+
return "lex-sidebar__mobile-header flex min-w-0 flex-1 items-center gap-(--lex-sidebar-mobile-bar-gap)"
|
|
101
111
|
}
|
|
102
112
|
|
|
103
113
|
export const sidebarBrandClasses = (): string => {
|
|
104
|
-
return
|
|
114
|
+
return [
|
|
115
|
+
"lex-sidebar__brand border-b border-(--lex-sidebar-brand-border-color)",
|
|
116
|
+
"px-(--lex-sidebar-brand-padding-x) py-(--lex-sidebar-brand-padding-y)",
|
|
117
|
+
].join(" ")
|
|
105
118
|
}
|
|
106
119
|
|
|
107
120
|
export const sidebarNavClasses = (): string => {
|
|
108
|
-
return "lex-sidebar__nav min-h-0 flex-1 p-
|
|
121
|
+
return "lex-sidebar__nav min-h-0 flex-1 p-(--lex-sidebar-nav-padding)"
|
|
109
122
|
}
|
|
110
123
|
|
|
111
124
|
export const sidebarInputClasses = (): string => {
|
|
@@ -118,26 +131,93 @@ export const sidebarInputClasses = (): string => {
|
|
|
118
131
|
export const sidebarSeparatorClasses = (): string => {
|
|
119
132
|
return [
|
|
120
133
|
"lex-sidebar__separator",
|
|
121
|
-
"mx-
|
|
122
|
-
"my-
|
|
134
|
+
"mx-(--lex-sidebar-separator-margin-x) w-auto",
|
|
135
|
+
"my-(--lex-sidebar-separator-margin-y)",
|
|
123
136
|
].join(" ")
|
|
124
137
|
}
|
|
125
138
|
|
|
126
139
|
export const sidebarNavListClasses = (): string => {
|
|
127
|
-
return "lex-sidebar__list m-0 flex list-none flex-col gap-
|
|
140
|
+
return "lex-sidebar__list m-0 flex list-none flex-col gap-(--lex-sidebar-list-gap) p-0"
|
|
128
141
|
}
|
|
129
142
|
|
|
130
143
|
export const sidebarItemClasses = (): string => {
|
|
131
144
|
return [
|
|
132
|
-
"lex-sidebar__row group/sidebar-row relative flex items-
|
|
133
|
-
"[&>:first-child]:min-w-0
|
|
145
|
+
"lex-sidebar__row group/sidebar-row relative flex flex-col items-stretch",
|
|
146
|
+
"[&>:first-child]:min-w-0",
|
|
147
|
+
"[&>.lex-sidebar__item-row]:min-w-0",
|
|
134
148
|
"has-[.lex-sidebar__item-action]:[&>:first-child]:pe-8",
|
|
135
149
|
].join(" ")
|
|
136
150
|
}
|
|
137
151
|
|
|
152
|
+
export const sidebarItemRowClasses = (): string => {
|
|
153
|
+
return [
|
|
154
|
+
"lex-sidebar__item-row flex w-full min-h-(--lex-sidebar-item-height-min) items-stretch",
|
|
155
|
+
].join(" ")
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export const sidebarItemDisclosureRowClasses = (): string => {
|
|
159
|
+
return [
|
|
160
|
+
"lex-sidebar__item-row lex-sidebar__item-row--disclosure group/sidebar-item-row",
|
|
161
|
+
"flex w-full min-h-(--lex-sidebar-item-height-min) items-stretch overflow-hidden",
|
|
162
|
+
"rounded-(--lex-sidebar-item-radius)",
|
|
163
|
+
"transition-colors duration-(--lex-sidebar-transition-duration) ease-(--lex-sidebar-transition-easing)",
|
|
164
|
+
"hover:bg-(--lex-sidebar-item-background-hover)",
|
|
165
|
+
"has-[.lex-sidebar__item--active]:bg-(--lex-sidebar-item-background-active)",
|
|
166
|
+
"has-[.lex-sidebar__item--active]:text-(--lex-sidebar-item-foreground-active)",
|
|
167
|
+
"has-[.lex-sidebar__item--active]:[&_.lex-sidebar__item-expand]:text-(--lex-sidebar-item-foreground-active)",
|
|
168
|
+
].join(" ")
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export const sidebarItemTrailingClasses = (): string => {
|
|
172
|
+
return [
|
|
173
|
+
"lex-sidebar__item-trailing ms-auto flex shrink-0 items-center gap-(--lex-sidebar-item-gap)",
|
|
174
|
+
"md:group-data-[collapsed=true]/sidebar:hidden",
|
|
175
|
+
].join(" ")
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/** @deprecated Prefer `sidebarItemTrailingClasses` inside the item shell. */
|
|
179
|
+
export const sidebarItemAdornmentsClasses = (): string => {
|
|
180
|
+
return sidebarItemTrailingClasses()
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export const sidebarNavItemRowLeadClasses = (
|
|
184
|
+
active?: boolean,
|
|
185
|
+
disabled?: boolean,
|
|
186
|
+
): string => {
|
|
187
|
+
return sidebarNavItemDisclosureLeadClasses(active, disabled)
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export const sidebarNavItemExpandTriggerClasses = (
|
|
191
|
+
open = false,
|
|
192
|
+
variant: "default" | "disclosure" = "default",
|
|
193
|
+
): string => {
|
|
194
|
+
const classes = [
|
|
195
|
+
"lex-sidebar__item-expand flex shrink-0 items-center justify-center",
|
|
196
|
+
"min-h-(--lex-sidebar-item-height-min) w-(--lex-sidebar-item-height-min)",
|
|
197
|
+
"rounded-(--lex-sidebar-item-radius) rounded-s-none",
|
|
198
|
+
"text-(--lex-sidebar-item-foreground)",
|
|
199
|
+
"transition-colors duration-(--lex-sidebar-transition-duration) ease-(--lex-sidebar-transition-easing)",
|
|
200
|
+
"focus-visible:outline-none focus-visible:ring-(length:--lex-sidebar-item-focus-ring-width) focus-visible:ring-inset focus-visible:ring-(--lex-sidebar-item-focus-ring-color)",
|
|
201
|
+
"[&>svg]:size-(--lex-sidebar-item-icon-size) [&>svg]:shrink-0 [&>svg]:transition-transform",
|
|
202
|
+
open ? "[&>svg]:rotate-180" : "",
|
|
203
|
+
]
|
|
204
|
+
|
|
205
|
+
if (variant === "disclosure") {
|
|
206
|
+
classes.push("hover:bg-transparent")
|
|
207
|
+
} else {
|
|
208
|
+
classes.push(
|
|
209
|
+
"hover:bg-(--lex-sidebar-item-background-hover) hover:text-(--lex-color-text-primary)",
|
|
210
|
+
)
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return classes.join(" ")
|
|
214
|
+
}
|
|
215
|
+
|
|
138
216
|
export const sidebarItemIconClasses = (): string => {
|
|
139
217
|
return [
|
|
140
218
|
"lex-sidebar__item-icon flex size-(--lex-sidebar-item-icon-size) shrink-0 items-center justify-center",
|
|
219
|
+
"transition-[width,height] duration-(--lex-sidebar-transition-duration) ease-(--lex-sidebar-transition-easing)",
|
|
220
|
+
"md:group-data-[collapsed=true]/sidebar:size-(--lex-sidebar-item-icon-size-collapsed)",
|
|
141
221
|
"[&_svg]:size-full",
|
|
142
222
|
].join(" ")
|
|
143
223
|
}
|
|
@@ -160,9 +240,10 @@ export const sidebarItemActionClasses = (showOnHover = true): string => {
|
|
|
160
240
|
|
|
161
241
|
export const sidebarItemShortcutClasses = (): string => {
|
|
162
242
|
return [
|
|
163
|
-
"lex-sidebar__item-shortcut
|
|
243
|
+
"lex-sidebar__item-shortcut inline-flex shrink-0 items-center justify-center",
|
|
244
|
+
"h-(--lex-sidebar-item-adornment-height) min-w-(--lex-sidebar-item-adornment-height)",
|
|
164
245
|
"rounded-(--lex-sidebar-item-radius) border border-[var(--lex-border-default)]",
|
|
165
|
-
"px-(--lex-
|
|
246
|
+
"px-(--lex-sidebar-item-shortcut-padding-x)",
|
|
166
247
|
"text-(length:--lex-sidebar-item-font-size) font-(--lex-sidebar-item-font-weight)",
|
|
167
248
|
"leading-(--lex-sidebar-item-font-line-height) text-(--lex-sidebar-item-foreground)",
|
|
168
249
|
"md:group-data-[collapsed=true]/sidebar:hidden",
|
|
@@ -178,7 +259,7 @@ export const sidebarGroupActionClasses = (): string => {
|
|
|
178
259
|
|
|
179
260
|
export const sidebarItemBadgeClasses = (): string => {
|
|
180
261
|
return [
|
|
181
|
-
"lex-sidebar__item-badge shrink-0",
|
|
262
|
+
"lex-sidebar__item-badge inline-flex shrink-0 items-center self-center",
|
|
182
263
|
"max-w-(--lex-sidebar-item-badge-max-width) truncate",
|
|
183
264
|
"md:group-data-[collapsed=true]/sidebar:absolute md:group-data-[collapsed=true]/sidebar:top-1",
|
|
184
265
|
"md:group-data-[collapsed=true]/sidebar:end-1 md:group-data-[collapsed=true]/sidebar:max-w-none",
|
|
@@ -217,7 +298,7 @@ export const sidebarItemBadgeDotClasses = (
|
|
|
217
298
|
|
|
218
299
|
export const sidebarSubListClasses = (): string => {
|
|
219
300
|
return [
|
|
220
|
-
"lex-sidebar__sub-list m-0 flex list-none flex-col gap-
|
|
301
|
+
"lex-sidebar__sub-list m-0 flex list-none flex-col gap-(--lex-sidebar-list-gap) p-0",
|
|
221
302
|
"ms-[calc(var(--lex-sidebar-item-padding-x)+(var(--lex-sidebar-item-icon-size)/2))]",
|
|
222
303
|
"border-s border-[var(--lex-border-default)] ps-(--lex-sidebar-item-sub-indent)",
|
|
223
304
|
"md:group-data-[collapsed=true]/sidebar:hidden",
|
|
@@ -245,21 +326,24 @@ const sidebarNavItemActiveAccentClasses = (): string => {
|
|
|
245
326
|
].join(" ")
|
|
246
327
|
}
|
|
247
328
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
disabled?: boolean,
|
|
251
|
-
): string => {
|
|
252
|
-
const base = [
|
|
329
|
+
const sidebarNavItemShellBaseClasses = (): string => {
|
|
330
|
+
return [
|
|
253
331
|
"lex-sidebar__item",
|
|
254
|
-
"relative flex min-w-
|
|
332
|
+
"relative flex min-h-(--lex-sidebar-item-height-min) w-full min-w-0 items-center gap-(--lex-sidebar-item-gap)",
|
|
255
333
|
"rounded-(--lex-sidebar-item-radius)",
|
|
256
334
|
"px-(--lex-sidebar-item-padding-x) py-(--lex-sidebar-item-padding-y)",
|
|
257
335
|
"text-(length:--lex-sidebar-item-font-size) font-(--lex-sidebar-item-font-weight)",
|
|
258
336
|
"leading-(--lex-sidebar-item-font-line-height)",
|
|
259
337
|
"no-underline outline-none transition-colors duration-(--lex-sidebar-transition-duration) ease-(--lex-sidebar-transition-easing)",
|
|
260
|
-
"focus-visible:ring-(length:--lex-sidebar-item-focus-ring-width) focus-visible:ring-(--lex-sidebar-item-focus-ring-color)",
|
|
261
|
-
"focus-visible:ring-offset-(length:--lex-sidebar-item-focus-ring-offset) focus-visible:ring-offset-(--lex-sidebar-item-focus-ring-offset-color)",
|
|
338
|
+
"focus-visible:ring-(length:--lex-sidebar-item-focus-ring-width) focus-visible:ring-inset focus-visible:ring-(--lex-sidebar-item-focus-ring-color)",
|
|
262
339
|
].join(" ")
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
export const sidebarNavItemClasses = (
|
|
343
|
+
active?: boolean,
|
|
344
|
+
disabled?: boolean,
|
|
345
|
+
): string => {
|
|
346
|
+
const base = sidebarNavItemShellBaseClasses()
|
|
263
347
|
|
|
264
348
|
if (disabled) {
|
|
265
349
|
return [
|
|
@@ -289,9 +373,46 @@ export const sidebarNavItemClasses = (
|
|
|
289
373
|
].join(" ")
|
|
290
374
|
}
|
|
291
375
|
|
|
376
|
+
export const sidebarNavItemDisclosureLeadClasses = (
|
|
377
|
+
active?: boolean,
|
|
378
|
+
disabled?: boolean,
|
|
379
|
+
): string => {
|
|
380
|
+
const base = sidebarNavItemShellBaseClasses()
|
|
381
|
+
|
|
382
|
+
if (disabled) {
|
|
383
|
+
return [
|
|
384
|
+
base,
|
|
385
|
+
disabledStateClasses,
|
|
386
|
+
"min-w-0 flex-1 rounded-e-none bg-transparent",
|
|
387
|
+
"cursor-not-allowed text-(--lex-color-text-disabled)",
|
|
388
|
+
"hover:bg-transparent hover:text-(--lex-color-text-disabled)",
|
|
389
|
+
"data-[disabled]:text-(--lex-color-text-disabled)",
|
|
390
|
+
].join(" ")
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
if (active) {
|
|
394
|
+
return [
|
|
395
|
+
base,
|
|
396
|
+
"lex-sidebar__item--active",
|
|
397
|
+
"min-w-0 flex-1 rounded-e-none bg-transparent",
|
|
398
|
+
"text-(--lex-sidebar-item-foreground-active)",
|
|
399
|
+
"font-(--lex-sidebar-item-font-weight-active)",
|
|
400
|
+
sidebarNavItemActiveAccentClasses(),
|
|
401
|
+
"hover:bg-transparent hover:text-(--lex-sidebar-item-foreground-active)",
|
|
402
|
+
].join(" ")
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
return [
|
|
406
|
+
base,
|
|
407
|
+
"min-w-0 flex-1 rounded-e-none bg-transparent",
|
|
408
|
+
"text-(--lex-sidebar-item-foreground)",
|
|
409
|
+
"hover:bg-transparent hover:text-(--lex-sidebar-item-foreground)",
|
|
410
|
+
].join(" ")
|
|
411
|
+
}
|
|
412
|
+
|
|
292
413
|
export const sidebarItemSkeletonClasses = (indent = false): string => {
|
|
293
414
|
const classes = [
|
|
294
|
-
"lex-sidebar__item-skeleton flex w-full min-w-0 flex-1 items-center gap-(--lex-sidebar-item-gap)",
|
|
415
|
+
"lex-sidebar__item-skeleton flex min-h-(--lex-sidebar-item-height-min) w-full min-w-0 flex-1 items-center gap-(--lex-sidebar-item-gap)",
|
|
295
416
|
"rounded-(--lex-sidebar-item-radius)",
|
|
296
417
|
"px-(--lex-sidebar-item-padding-x) py-(--lex-sidebar-item-padding-y)",
|
|
297
418
|
sidebarCollapsedItemClasses(),
|
|
@@ -326,28 +447,34 @@ export const sidebarMainClasses = (): string => {
|
|
|
326
447
|
}
|
|
327
448
|
|
|
328
449
|
export const sidebarDrawerFooterClasses = (): string => {
|
|
329
|
-
return
|
|
450
|
+
return [
|
|
451
|
+
"lex-sidebar__drawer-footer border-t border-(--lex-sidebar-drawer-footer-border-color)",
|
|
452
|
+
"p-(--lex-sidebar-drawer-footer-padding)",
|
|
453
|
+
].join(" ")
|
|
330
454
|
}
|
|
331
455
|
|
|
332
456
|
export const sidebarFooterClasses = (): string => {
|
|
333
|
-
return
|
|
457
|
+
return [
|
|
458
|
+
"lex-sidebar__footer border-t border-(--lex-sidebar-footer-border-color)",
|
|
459
|
+
"p-(--lex-sidebar-footer-padding)",
|
|
460
|
+
].join(" ")
|
|
334
461
|
}
|
|
335
462
|
|
|
336
463
|
export const sidebarGroupClasses = (): string => {
|
|
337
|
-
return "lex-sidebar__group flex flex-col gap-
|
|
464
|
+
return "lex-sidebar__group flex flex-col gap-(--lex-sidebar-group-gap)"
|
|
338
465
|
}
|
|
339
466
|
|
|
340
467
|
export const sidebarGroupLabelClasses = (): string => {
|
|
341
468
|
return [
|
|
342
|
-
"lex-sidebar__group-label flex items-center justify-between gap-
|
|
343
|
-
"px-
|
|
469
|
+
"lex-sidebar__group-label flex items-center justify-between gap-(--lex-sidebar-group-label-gap)",
|
|
470
|
+
"px-(--lex-sidebar-group-label-padding-x) py-(--lex-sidebar-group-label-padding-y)",
|
|
344
471
|
"text-(length:--lex-menu-group-label-font-size) font-(--lex-menu-group-label-font-weight)",
|
|
345
472
|
"leading-(--lex-menu-group-label-font-line-height) text-(--lex-menu-group-label-foreground)",
|
|
346
473
|
].join(" ")
|
|
347
474
|
}
|
|
348
475
|
|
|
349
476
|
export const sidebarGroupContentClasses = (): string => {
|
|
350
|
-
return "lex-sidebar__group-content flex flex-col gap-
|
|
477
|
+
return "lex-sidebar__group-content flex flex-col gap-(--lex-sidebar-group-gap)"
|
|
351
478
|
}
|
|
352
479
|
|
|
353
480
|
export const sidebarGroupCollapsibleClasses = (): string => {
|
|
@@ -357,13 +484,13 @@ export const sidebarGroupCollapsibleClasses = (): string => {
|
|
|
357
484
|
export const sidebarGroupCollapsibleTriggerClasses = (): string => {
|
|
358
485
|
return [
|
|
359
486
|
"lex-sidebar__group-collapsible-trigger",
|
|
360
|
-
"flex min-w-0 flex-1 items-center gap-
|
|
487
|
+
"flex min-w-0 flex-1 items-center gap-(--lex-sidebar-group-collapsible-trigger-gap) text-left outline-none",
|
|
361
488
|
"text-(length:--lex-menu-group-label-font-size) font-(--lex-menu-group-label-font-weight)",
|
|
362
489
|
"leading-(--lex-menu-group-label-font-line-height) text-(--lex-menu-group-label-foreground)",
|
|
363
490
|
"transition-colors duration-(--lex-sidebar-transition-duration) ease-(--lex-sidebar-transition-easing)",
|
|
364
491
|
"hover:text-(--lex-menu-group-label-foreground)",
|
|
365
492
|
"focus-visible:ring-(length:--lex-focus-ring-width) focus-visible:ring-inset focus-visible:ring-(--lex-focus-ring-color)",
|
|
366
|
-
"[&>svg]:ms-auto [&>svg]:size-
|
|
493
|
+
"[&>svg]:ms-auto [&>svg]:size-(--lex-sidebar-item-icon-size) [&>svg]:shrink-0 [&>svg]:transition-transform",
|
|
367
494
|
"group-data-[panel-open]/sidebar-group-collapsible:[&>svg]:rotate-180",
|
|
368
495
|
].join(" ")
|
|
369
496
|
}
|
|
@@ -11,10 +11,10 @@ export const statsCardClasses = (): string => {
|
|
|
11
11
|
export const statsCardValueClasses = (): string => {
|
|
12
12
|
return [
|
|
13
13
|
"lex-stats-card__value",
|
|
14
|
-
"text-(length:--lex-
|
|
15
|
-
"font-(--lex-
|
|
16
|
-
"leading-(--lex-
|
|
17
|
-
"text-(--lex-
|
|
14
|
+
"text-(length:--lex-stats-card-value-font-size)",
|
|
15
|
+
"font-(--lex-stats-card-value-font-weight)",
|
|
16
|
+
"leading-(--lex-stats-card-value-font-line-height)",
|
|
17
|
+
"text-(--lex-stats-card-value-foreground)",
|
|
18
18
|
"m-0",
|
|
19
19
|
].join(" ")
|
|
20
20
|
}
|
|
@@ -22,7 +22,8 @@ export const statsCardValueClasses = (): string => {
|
|
|
22
22
|
export const statsCardTrendClasses = (): string => {
|
|
23
23
|
return [
|
|
24
24
|
"lex-stats-card__trend",
|
|
25
|
-
"text-(length:--lex-
|
|
26
|
-
"
|
|
25
|
+
"text-(length:--lex-stats-card-trend-font-size)",
|
|
26
|
+
"leading-(--lex-stats-card-trend-font-line-height)",
|
|
27
|
+
"text-(--lex-stats-card-trend-foreground)",
|
|
27
28
|
].join(" ")
|
|
28
29
|
}
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
datePickerDayVariants,
|
|
29
29
|
datePickerGridVariants,
|
|
30
30
|
datePickerHeaderVariants,
|
|
31
|
+
datePickerInputEmbeddedClasses,
|
|
31
32
|
datePickerMonthLabelVariants,
|
|
32
33
|
datePickerNavButtonVariants,
|
|
33
34
|
datePickerWeekdayVariants,
|
|
@@ -102,9 +103,18 @@ DatePickerTrigger.displayName = "DatePickerTrigger"
|
|
|
102
103
|
const DatePickerInput = ({
|
|
103
104
|
ref,
|
|
104
105
|
className,
|
|
106
|
+
embedded = false,
|
|
107
|
+
size,
|
|
105
108
|
...props
|
|
106
109
|
}: DatePickerInputProps) => {
|
|
107
|
-
return
|
|
110
|
+
return (
|
|
111
|
+
<Input
|
|
112
|
+
ref={ref}
|
|
113
|
+
size={size ?? (embedded ? "sm" : undefined)}
|
|
114
|
+
className={cn(embedded && datePickerInputEmbeddedClasses(), className)}
|
|
115
|
+
{...props}
|
|
116
|
+
/>
|
|
117
|
+
)
|
|
108
118
|
}
|
|
109
119
|
|
|
110
120
|
DatePickerInput.displayName = "DatePickerInput"
|
|
@@ -16,7 +16,10 @@ export type DatePickerProps<Payload = unknown> = PopoverProps<Payload>
|
|
|
16
16
|
export type DatePickerTriggerProps<Payload = unknown> =
|
|
17
17
|
PopoverTriggerProps<Payload>
|
|
18
18
|
|
|
19
|
-
export
|
|
19
|
+
export interface DatePickerInputProps extends InputProps {
|
|
20
|
+
/** Flat chrome for toolbar/filter row slots — no outer border. */
|
|
21
|
+
embedded?: boolean
|
|
22
|
+
}
|
|
20
23
|
|
|
21
24
|
export interface DatePickerContentProps extends Omit<
|
|
22
25
|
HTMLAttributes<HTMLDivElement>,
|
|
@@ -9,6 +9,15 @@ import { disabledStateClasses } from "@/lib/utils"
|
|
|
9
9
|
|
|
10
10
|
export const datePickerContentVariants = cva("p-0")
|
|
11
11
|
|
|
12
|
+
export const datePickerInputEmbeddedClasses = (): string => {
|
|
13
|
+
return [
|
|
14
|
+
"h-(--lex-date-picker-trigger-input-embedded-height)",
|
|
15
|
+
"border-0 bg-(--lex-date-picker-trigger-input-embedded-background) shadow-none",
|
|
16
|
+
"px-(--lex-date-picker-trigger-input-embedded-padding-x)",
|
|
17
|
+
"focus-visible:border-0 focus-visible:ring-0",
|
|
18
|
+
].join(" ")
|
|
19
|
+
}
|
|
20
|
+
|
|
12
21
|
export const datePickerCalendarVariants = cva(
|
|
13
22
|
"flex w-(--lex-date-picker-calendar-width) flex-col gap-(--lex-date-picker-calendar-gap) rounded-(--lex-date-picker-calendar-radius) border border-(--lex-date-picker-calendar-border-color) bg-(--lex-date-picker-calendar-background) p-(--lex-date-picker-calendar-padding) text-(--lex-date-picker-calendar-foreground)",
|
|
14
23
|
)
|
|
@@ -32,7 +41,7 @@ export const datePickerNavButtonVariants = cva(
|
|
|
32
41
|
)
|
|
33
42
|
|
|
34
43
|
export const datePickerWeekdaysVariants = cva(
|
|
35
|
-
"grid grid-cols-7 gap-(--lex-
|
|
44
|
+
"grid grid-cols-7 gap-(--lex-date-picker-calendar-grid-gap)",
|
|
36
45
|
)
|
|
37
46
|
|
|
38
47
|
export const datePickerWeekdayVariants = cva(
|
|
@@ -40,7 +49,7 @@ export const datePickerWeekdayVariants = cva(
|
|
|
40
49
|
)
|
|
41
50
|
|
|
42
51
|
export const datePickerGridVariants = cva(
|
|
43
|
-
"grid grid-cols-7 gap-(--lex-
|
|
52
|
+
"grid grid-cols-7 gap-(--lex-date-picker-calendar-grid-gap)",
|
|
44
53
|
)
|
|
45
54
|
|
|
46
55
|
export const datePickerDayVariants = cva(
|
|
@@ -73,8 +73,10 @@ export const toolbarSeparatorVariants = cva(
|
|
|
73
73
|
{
|
|
74
74
|
variants: {
|
|
75
75
|
orientation: {
|
|
76
|
-
horizontal:
|
|
77
|
-
|
|
76
|
+
horizontal:
|
|
77
|
+
"mx-(--lex-toolbar-separator-margin) h-(--lex-separator-thickness) w-full",
|
|
78
|
+
vertical:
|
|
79
|
+
"my-(--lex-toolbar-separator-margin) h-full w-(--lex-separator-thickness)",
|
|
78
80
|
},
|
|
79
81
|
},
|
|
80
82
|
defaultVariants: {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generated by @dalexto/lexsys-tokens.
|
|
5
5
|
* Manual changes will be overwritten.
|
|
6
|
-
* Last generated: 2026-06-
|
|
6
|
+
* Last generated: 2026-06-07T16:48:33.996Z
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
:root {
|
|
@@ -72,6 +72,11 @@
|
|
|
72
72
|
--spacing-twix-selection-control-sm: var(--lex-size-selection-control-sm);
|
|
73
73
|
--spacing-twix-selection-control-md: var(--lex-size-selection-control-md);
|
|
74
74
|
--spacing-twix-selection-control-lg: var(--lex-size-selection-control-lg);
|
|
75
|
+
--spacing-twix-icon-xs: var(--lex-size-icon-xs);
|
|
76
|
+
--spacing-twix-icon-sm: var(--lex-size-icon-sm);
|
|
77
|
+
--spacing-twix-icon-md: var(--lex-size-icon-md);
|
|
78
|
+
--spacing-twix-icon-lg: var(--lex-size-icon-lg);
|
|
79
|
+
--spacing-twix-icon-xl: var(--lex-size-icon-xl);
|
|
75
80
|
--spacing-twix-area-swipe-sm: var(--lex-size-area-swipe-sm);
|
|
76
81
|
--spacing-twix-area-swipe-md: var(--lex-size-area-swipe-md);
|
|
77
82
|
--spacing-twix-area-swipe-lg: var(--lex-size-area-swipe-lg);
|