@almadar/ui 2.33.2 → 2.34.0
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/components/index.cjs +16 -11
- package/dist/components/index.js +16 -11
- package/dist/runtime/index.cjs +16 -11
- package/dist/runtime/index.js +16 -11
- package/dist/scripts/audit-tailwind-safelist.d.ts +27 -0
- package/package.json +2 -2
- package/tailwind-preset.cjs +170 -1
|
@@ -34006,7 +34006,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
34006
34006
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
34007
34007
|
Box,
|
|
34008
34008
|
{
|
|
34009
|
-
className: "absolute inset-0 z-50 flex items-
|
|
34009
|
+
className: "absolute inset-0 z-50 flex items-start justify-center overflow-auto",
|
|
34010
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)", paddingTop: "10%" },
|
|
34010
34011
|
onClick: onDismiss,
|
|
34011
34012
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
34012
34013
|
Box,
|
|
@@ -34015,7 +34016,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
34015
34016
|
border: true,
|
|
34016
34017
|
shadow: "lg",
|
|
34017
34018
|
rounded: "md",
|
|
34018
|
-
className: "pointer-events-auto
|
|
34019
|
+
className: "pointer-events-auto w-full overflow-auto flex flex-col",
|
|
34020
|
+
style: { minWidth: "520px", maxWidth: "700px", maxHeight: "80%" },
|
|
34019
34021
|
onClick: (e) => e.stopPropagation(),
|
|
34020
34022
|
children: [
|
|
34021
34023
|
content.props.title ? /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex items-center justify-between p-4 border-b border-border", children: [
|
|
@@ -34040,7 +34042,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
34040
34042
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
34041
34043
|
Box,
|
|
34042
34044
|
{
|
|
34043
|
-
className: "absolute inset-0 z-50
|
|
34045
|
+
className: "absolute inset-0 z-50 overflow-hidden",
|
|
34046
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
34044
34047
|
onClick: onDismiss,
|
|
34045
34048
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
34046
34049
|
Box,
|
|
@@ -34084,7 +34087,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
34084
34087
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
34085
34088
|
Box,
|
|
34086
34089
|
{
|
|
34087
|
-
className: "absolute inset-0 z-50
|
|
34090
|
+
className: "absolute inset-0 z-50 flex items-center justify-center overflow-auto",
|
|
34091
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
34088
34092
|
onClick: onDismiss,
|
|
34089
34093
|
children: /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "max-h-full overflow-auto", onClick: (e) => e.stopPropagation(), children: slotContent })
|
|
34090
34094
|
}
|
|
@@ -34460,12 +34464,13 @@ function UISlotRenderer({
|
|
|
34460
34464
|
const isContained = hudMode === "inline";
|
|
34461
34465
|
const suspenseConfig = suspense === true ? { enabled: true } : suspense && typeof suspense === "object" ? suspense : { enabled: false };
|
|
34462
34466
|
const content = /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: cn(
|
|
34463
|
-
"ui-slot-renderer",
|
|
34464
|
-
isContained && "relative",
|
|
34467
|
+
"ui-slot-renderer relative min-h-full",
|
|
34465
34468
|
className
|
|
34466
34469
|
), children: [
|
|
34467
|
-
/* @__PURE__ */ jsxRuntime.
|
|
34468
|
-
|
|
34470
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex min-h-full", children: [
|
|
34471
|
+
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "sidebar", className: "ui-slot-sidebar min-w-0 shrink-0" }),
|
|
34472
|
+
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "main", className: "ui-slot-main flex-1 min-h-[200px]" })
|
|
34473
|
+
] }),
|
|
34469
34474
|
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "modal", portal: true }),
|
|
34470
34475
|
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "drawer", portal: true }),
|
|
34471
34476
|
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "overlay", portal: true }),
|
|
@@ -34476,14 +34481,14 @@ function UISlotRenderer({
|
|
|
34476
34481
|
UISlotComponent,
|
|
34477
34482
|
{
|
|
34478
34483
|
slot: "hud-top",
|
|
34479
|
-
className: isContained ? "
|
|
34484
|
+
className: isContained ? "absolute top-0 left-0 right-0 z-40" : "fixed top-0 inset-x-0 z-40"
|
|
34480
34485
|
}
|
|
34481
34486
|
),
|
|
34482
34487
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
34483
34488
|
UISlotComponent,
|
|
34484
34489
|
{
|
|
34485
34490
|
slot: "hud-bottom",
|
|
34486
|
-
className: isContained ? "
|
|
34491
|
+
className: isContained ? "absolute bottom-0 left-0 right-0 z-40" : "fixed bottom-0 inset-x-0 z-40"
|
|
34487
34492
|
}
|
|
34488
34493
|
)
|
|
34489
34494
|
] }),
|
|
@@ -34491,7 +34496,7 @@ function UISlotRenderer({
|
|
|
34491
34496
|
UISlotComponent,
|
|
34492
34497
|
{
|
|
34493
34498
|
slot: "floating",
|
|
34494
|
-
className: isContained ? "absolute z-50" : "fixed z-50",
|
|
34499
|
+
className: isContained ? "absolute top-2 left-2 z-50" : "fixed z-50",
|
|
34495
34500
|
draggable: true
|
|
34496
34501
|
}
|
|
34497
34502
|
)
|
package/dist/components/index.js
CHANGED
|
@@ -33976,7 +33976,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
33976
33976
|
return /* @__PURE__ */ jsx(
|
|
33977
33977
|
Box,
|
|
33978
33978
|
{
|
|
33979
|
-
className: "absolute inset-0 z-50 flex items-
|
|
33979
|
+
className: "absolute inset-0 z-50 flex items-start justify-center overflow-auto",
|
|
33980
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)", paddingTop: "10%" },
|
|
33980
33981
|
onClick: onDismiss,
|
|
33981
33982
|
children: /* @__PURE__ */ jsxs(
|
|
33982
33983
|
Box,
|
|
@@ -33985,7 +33986,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
33985
33986
|
border: true,
|
|
33986
33987
|
shadow: "lg",
|
|
33987
33988
|
rounded: "md",
|
|
33988
|
-
className: "pointer-events-auto
|
|
33989
|
+
className: "pointer-events-auto w-full overflow-auto flex flex-col",
|
|
33990
|
+
style: { minWidth: "520px", maxWidth: "700px", maxHeight: "80%" },
|
|
33989
33991
|
onClick: (e) => e.stopPropagation(),
|
|
33990
33992
|
children: [
|
|
33991
33993
|
content.props.title ? /* @__PURE__ */ jsxs(Box, { className: "flex items-center justify-between p-4 border-b border-border", children: [
|
|
@@ -34010,7 +34012,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
34010
34012
|
return /* @__PURE__ */ jsx(
|
|
34011
34013
|
Box,
|
|
34012
34014
|
{
|
|
34013
|
-
className: "absolute inset-0 z-50
|
|
34015
|
+
className: "absolute inset-0 z-50 overflow-hidden",
|
|
34016
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
34014
34017
|
onClick: onDismiss,
|
|
34015
34018
|
children: /* @__PURE__ */ jsxs(
|
|
34016
34019
|
Box,
|
|
@@ -34054,7 +34057,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
34054
34057
|
return /* @__PURE__ */ jsx(
|
|
34055
34058
|
Box,
|
|
34056
34059
|
{
|
|
34057
|
-
className: "absolute inset-0 z-50
|
|
34060
|
+
className: "absolute inset-0 z-50 flex items-center justify-center overflow-auto",
|
|
34061
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
34058
34062
|
onClick: onDismiss,
|
|
34059
34063
|
children: /* @__PURE__ */ jsx(Box, { className: "max-h-full overflow-auto", onClick: (e) => e.stopPropagation(), children: slotContent })
|
|
34060
34064
|
}
|
|
@@ -34430,12 +34434,13 @@ function UISlotRenderer({
|
|
|
34430
34434
|
const isContained = hudMode === "inline";
|
|
34431
34435
|
const suspenseConfig = suspense === true ? { enabled: true } : suspense && typeof suspense === "object" ? suspense : { enabled: false };
|
|
34432
34436
|
const content = /* @__PURE__ */ jsxs(Box, { className: cn(
|
|
34433
|
-
"ui-slot-renderer",
|
|
34434
|
-
isContained && "relative",
|
|
34437
|
+
"ui-slot-renderer relative min-h-full",
|
|
34435
34438
|
className
|
|
34436
34439
|
), children: [
|
|
34437
|
-
/* @__PURE__ */
|
|
34438
|
-
|
|
34440
|
+
/* @__PURE__ */ jsxs(Box, { className: "flex min-h-full", children: [
|
|
34441
|
+
/* @__PURE__ */ jsx(UISlotComponent, { slot: "sidebar", className: "ui-slot-sidebar min-w-0 shrink-0" }),
|
|
34442
|
+
/* @__PURE__ */ jsx(UISlotComponent, { slot: "main", className: "ui-slot-main flex-1 min-h-[200px]" })
|
|
34443
|
+
] }),
|
|
34439
34444
|
/* @__PURE__ */ jsx(UISlotComponent, { slot: "modal", portal: true }),
|
|
34440
34445
|
/* @__PURE__ */ jsx(UISlotComponent, { slot: "drawer", portal: true }),
|
|
34441
34446
|
/* @__PURE__ */ jsx(UISlotComponent, { slot: "overlay", portal: true }),
|
|
@@ -34446,14 +34451,14 @@ function UISlotRenderer({
|
|
|
34446
34451
|
UISlotComponent,
|
|
34447
34452
|
{
|
|
34448
34453
|
slot: "hud-top",
|
|
34449
|
-
className: isContained ? "
|
|
34454
|
+
className: isContained ? "absolute top-0 left-0 right-0 z-40" : "fixed top-0 inset-x-0 z-40"
|
|
34450
34455
|
}
|
|
34451
34456
|
),
|
|
34452
34457
|
/* @__PURE__ */ jsx(
|
|
34453
34458
|
UISlotComponent,
|
|
34454
34459
|
{
|
|
34455
34460
|
slot: "hud-bottom",
|
|
34456
|
-
className: isContained ? "
|
|
34461
|
+
className: isContained ? "absolute bottom-0 left-0 right-0 z-40" : "fixed bottom-0 inset-x-0 z-40"
|
|
34457
34462
|
}
|
|
34458
34463
|
)
|
|
34459
34464
|
] }),
|
|
@@ -34461,7 +34466,7 @@ function UISlotRenderer({
|
|
|
34461
34466
|
UISlotComponent,
|
|
34462
34467
|
{
|
|
34463
34468
|
slot: "floating",
|
|
34464
|
-
className: isContained ? "absolute z-50" : "fixed z-50",
|
|
34469
|
+
className: isContained ? "absolute top-2 left-2 z-50" : "fixed z-50",
|
|
34465
34470
|
draggable: true
|
|
34466
34471
|
}
|
|
34467
34472
|
)
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -31980,7 +31980,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
31980
31980
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31981
31981
|
Box,
|
|
31982
31982
|
{
|
|
31983
|
-
className: "absolute inset-0 z-50 flex items-
|
|
31983
|
+
className: "absolute inset-0 z-50 flex items-start justify-center overflow-auto",
|
|
31984
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)", paddingTop: "10%" },
|
|
31984
31985
|
onClick: onDismiss,
|
|
31985
31986
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
31986
31987
|
Box,
|
|
@@ -31989,7 +31990,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
31989
31990
|
border: true,
|
|
31990
31991
|
shadow: "lg",
|
|
31991
31992
|
rounded: "md",
|
|
31992
|
-
className: "pointer-events-auto
|
|
31993
|
+
className: "pointer-events-auto w-full overflow-auto flex flex-col",
|
|
31994
|
+
style: { minWidth: "520px", maxWidth: "700px", maxHeight: "80%" },
|
|
31993
31995
|
onClick: (e) => e.stopPropagation(),
|
|
31994
31996
|
children: [
|
|
31995
31997
|
content.props.title ? /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex items-center justify-between p-4 border-b border-border", children: [
|
|
@@ -32014,7 +32016,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
32014
32016
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32015
32017
|
Box,
|
|
32016
32018
|
{
|
|
32017
|
-
className: "absolute inset-0 z-50
|
|
32019
|
+
className: "absolute inset-0 z-50 overflow-hidden",
|
|
32020
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
32018
32021
|
onClick: onDismiss,
|
|
32019
32022
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
32020
32023
|
Box,
|
|
@@ -32058,7 +32061,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
32058
32061
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32059
32062
|
Box,
|
|
32060
32063
|
{
|
|
32061
|
-
className: "absolute inset-0 z-50
|
|
32064
|
+
className: "absolute inset-0 z-50 flex items-center justify-center overflow-auto",
|
|
32065
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
32062
32066
|
onClick: onDismiss,
|
|
32063
32067
|
children: /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "max-h-full overflow-auto", onClick: (e) => e.stopPropagation(), children: slotContent })
|
|
32064
32068
|
}
|
|
@@ -32434,12 +32438,13 @@ function UISlotRenderer({
|
|
|
32434
32438
|
const isContained = hudMode === "inline";
|
|
32435
32439
|
const suspenseConfig = suspense === true ? { enabled: true } : suspense && typeof suspense === "object" ? suspense : { enabled: false };
|
|
32436
32440
|
const content = /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: cn(
|
|
32437
|
-
"ui-slot-renderer",
|
|
32438
|
-
isContained && "relative",
|
|
32441
|
+
"ui-slot-renderer relative min-h-full",
|
|
32439
32442
|
className
|
|
32440
32443
|
), children: [
|
|
32441
|
-
/* @__PURE__ */ jsxRuntime.
|
|
32442
|
-
|
|
32444
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex min-h-full", children: [
|
|
32445
|
+
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "sidebar", className: "ui-slot-sidebar min-w-0 shrink-0" }),
|
|
32446
|
+
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "main", className: "ui-slot-main flex-1 min-h-[200px]" })
|
|
32447
|
+
] }),
|
|
32443
32448
|
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "modal", portal: true }),
|
|
32444
32449
|
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "drawer", portal: true }),
|
|
32445
32450
|
/* @__PURE__ */ jsxRuntime.jsx(UISlotComponent, { slot: "overlay", portal: true }),
|
|
@@ -32450,14 +32455,14 @@ function UISlotRenderer({
|
|
|
32450
32455
|
UISlotComponent,
|
|
32451
32456
|
{
|
|
32452
32457
|
slot: "hud-top",
|
|
32453
|
-
className: isContained ? "
|
|
32458
|
+
className: isContained ? "absolute top-0 left-0 right-0 z-40" : "fixed top-0 inset-x-0 z-40"
|
|
32454
32459
|
}
|
|
32455
32460
|
),
|
|
32456
32461
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
32457
32462
|
UISlotComponent,
|
|
32458
32463
|
{
|
|
32459
32464
|
slot: "hud-bottom",
|
|
32460
|
-
className: isContained ? "
|
|
32465
|
+
className: isContained ? "absolute bottom-0 left-0 right-0 z-40" : "fixed bottom-0 inset-x-0 z-40"
|
|
32461
32466
|
}
|
|
32462
32467
|
)
|
|
32463
32468
|
] }),
|
|
@@ -32465,7 +32470,7 @@ function UISlotRenderer({
|
|
|
32465
32470
|
UISlotComponent,
|
|
32466
32471
|
{
|
|
32467
32472
|
slot: "floating",
|
|
32468
|
-
className: isContained ? "absolute z-50" : "fixed z-50",
|
|
32473
|
+
className: isContained ? "absolute top-2 left-2 z-50" : "fixed z-50",
|
|
32469
32474
|
draggable: true
|
|
32470
32475
|
}
|
|
32471
32476
|
)
|
package/dist/runtime/index.js
CHANGED
|
@@ -31950,7 +31950,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
31950
31950
|
return /* @__PURE__ */ jsx(
|
|
31951
31951
|
Box,
|
|
31952
31952
|
{
|
|
31953
|
-
className: "absolute inset-0 z-50 flex items-
|
|
31953
|
+
className: "absolute inset-0 z-50 flex items-start justify-center overflow-auto",
|
|
31954
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)", paddingTop: "10%" },
|
|
31954
31955
|
onClick: onDismiss,
|
|
31955
31956
|
children: /* @__PURE__ */ jsxs(
|
|
31956
31957
|
Box,
|
|
@@ -31959,7 +31960,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
31959
31960
|
border: true,
|
|
31960
31961
|
shadow: "lg",
|
|
31961
31962
|
rounded: "md",
|
|
31962
|
-
className: "pointer-events-auto
|
|
31963
|
+
className: "pointer-events-auto w-full overflow-auto flex flex-col",
|
|
31964
|
+
style: { minWidth: "520px", maxWidth: "700px", maxHeight: "80%" },
|
|
31963
31965
|
onClick: (e) => e.stopPropagation(),
|
|
31964
31966
|
children: [
|
|
31965
31967
|
content.props.title ? /* @__PURE__ */ jsxs(Box, { className: "flex items-center justify-between p-4 border-b border-border", children: [
|
|
@@ -31984,7 +31986,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
31984
31986
|
return /* @__PURE__ */ jsx(
|
|
31985
31987
|
Box,
|
|
31986
31988
|
{
|
|
31987
|
-
className: "absolute inset-0 z-50
|
|
31989
|
+
className: "absolute inset-0 z-50 overflow-hidden",
|
|
31990
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
31988
31991
|
onClick: onDismiss,
|
|
31989
31992
|
children: /* @__PURE__ */ jsxs(
|
|
31990
31993
|
Box,
|
|
@@ -32028,7 +32031,8 @@ function renderContainedPortal(slot, content, onDismiss) {
|
|
|
32028
32031
|
return /* @__PURE__ */ jsx(
|
|
32029
32032
|
Box,
|
|
32030
32033
|
{
|
|
32031
|
-
className: "absolute inset-0 z-50
|
|
32034
|
+
className: "absolute inset-0 z-50 flex items-center justify-center overflow-auto",
|
|
32035
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.5)" },
|
|
32032
32036
|
onClick: onDismiss,
|
|
32033
32037
|
children: /* @__PURE__ */ jsx(Box, { className: "max-h-full overflow-auto", onClick: (e) => e.stopPropagation(), children: slotContent })
|
|
32034
32038
|
}
|
|
@@ -32404,12 +32408,13 @@ function UISlotRenderer({
|
|
|
32404
32408
|
const isContained = hudMode === "inline";
|
|
32405
32409
|
const suspenseConfig = suspense === true ? { enabled: true } : suspense && typeof suspense === "object" ? suspense : { enabled: false };
|
|
32406
32410
|
const content = /* @__PURE__ */ jsxs(Box, { className: cn(
|
|
32407
|
-
"ui-slot-renderer",
|
|
32408
|
-
isContained && "relative",
|
|
32411
|
+
"ui-slot-renderer relative min-h-full",
|
|
32409
32412
|
className
|
|
32410
32413
|
), children: [
|
|
32411
|
-
/* @__PURE__ */
|
|
32412
|
-
|
|
32414
|
+
/* @__PURE__ */ jsxs(Box, { className: "flex min-h-full", children: [
|
|
32415
|
+
/* @__PURE__ */ jsx(UISlotComponent, { slot: "sidebar", className: "ui-slot-sidebar min-w-0 shrink-0" }),
|
|
32416
|
+
/* @__PURE__ */ jsx(UISlotComponent, { slot: "main", className: "ui-slot-main flex-1 min-h-[200px]" })
|
|
32417
|
+
] }),
|
|
32413
32418
|
/* @__PURE__ */ jsx(UISlotComponent, { slot: "modal", portal: true }),
|
|
32414
32419
|
/* @__PURE__ */ jsx(UISlotComponent, { slot: "drawer", portal: true }),
|
|
32415
32420
|
/* @__PURE__ */ jsx(UISlotComponent, { slot: "overlay", portal: true }),
|
|
@@ -32420,14 +32425,14 @@ function UISlotRenderer({
|
|
|
32420
32425
|
UISlotComponent,
|
|
32421
32426
|
{
|
|
32422
32427
|
slot: "hud-top",
|
|
32423
|
-
className: isContained ? "
|
|
32428
|
+
className: isContained ? "absolute top-0 left-0 right-0 z-40" : "fixed top-0 inset-x-0 z-40"
|
|
32424
32429
|
}
|
|
32425
32430
|
),
|
|
32426
32431
|
/* @__PURE__ */ jsx(
|
|
32427
32432
|
UISlotComponent,
|
|
32428
32433
|
{
|
|
32429
32434
|
slot: "hud-bottom",
|
|
32430
|
-
className: isContained ? "
|
|
32435
|
+
className: isContained ? "absolute bottom-0 left-0 right-0 z-40" : "fixed bottom-0 inset-x-0 z-40"
|
|
32431
32436
|
}
|
|
32432
32437
|
)
|
|
32433
32438
|
] }),
|
|
@@ -32435,7 +32440,7 @@ function UISlotRenderer({
|
|
|
32435
32440
|
UISlotComponent,
|
|
32436
32441
|
{
|
|
32437
32442
|
slot: "floating",
|
|
32438
|
-
className: isContained ? "absolute z-50" : "fixed z-50",
|
|
32443
|
+
className: isContained ? "absolute top-2 left-2 z-50" : "fixed z-50",
|
|
32439
32444
|
draggable: true
|
|
32440
32445
|
}
|
|
32441
32446
|
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env npx tsx
|
|
2
|
+
/**
|
|
3
|
+
* Tailwind Safelist Audit
|
|
4
|
+
*
|
|
5
|
+
* Scans all @almadar/ui source files for Tailwind classes that need
|
|
6
|
+
* to be in the safelist (because consuming apps can't extract them
|
|
7
|
+
* from compiled dist/ files). Compares against the current safelist
|
|
8
|
+
* in tailwind-preset.cjs and reports missing entries.
|
|
9
|
+
*
|
|
10
|
+
* Classes that need safelisting:
|
|
11
|
+
* 1. Arbitrary value classes: bg-[var(--color-X)], min-h-[200px], etc.
|
|
12
|
+
* 2. Opacity modifiers on semantic colors: bg-primary/10, text-foreground/60
|
|
13
|
+
* 3. Responsive prefixes on dynamic values: sm:grid-cols-2
|
|
14
|
+
* 4. State prefixes on CSS vars: hover:bg-[var(--color-X)]
|
|
15
|
+
*
|
|
16
|
+
* Standard utility classes (flex, p-4, rounded-lg) are fine because
|
|
17
|
+
* the shell template's tailwind.config.js includes the dist/ path in
|
|
18
|
+
* content scanning. But CSS-variable-based arbitrary classes use bracket
|
|
19
|
+
* notation that Tailwind can't extract from minified JS.
|
|
20
|
+
*
|
|
21
|
+
* Usage:
|
|
22
|
+
* npx tsx scripts/audit-tailwind-safelist.ts
|
|
23
|
+
* npx tsx scripts/audit-tailwind-safelist.ts --fix (appends missing to preset)
|
|
24
|
+
*
|
|
25
|
+
* @packageDocumentation
|
|
26
|
+
*/
|
|
27
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@almadar/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.34.0",
|
|
4
4
|
"description": "React UI components, hooks, and providers for Almadar",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/components/index.js",
|
|
@@ -116,6 +116,7 @@
|
|
|
116
116
|
"@almadar/core": ">=2.6.3",
|
|
117
117
|
"@almadar/evaluator": ">=2.5.4",
|
|
118
118
|
"@almadar/patterns": ">=2.8.7",
|
|
119
|
+
"@almadar/std": ">=3.6.0",
|
|
119
120
|
"@almadar/runtime": ">=2.0.0",
|
|
120
121
|
"@xyflow/react": "12.10.1",
|
|
121
122
|
"clsx": "^2.1.0",
|
|
@@ -142,7 +143,6 @@
|
|
|
142
143
|
},
|
|
143
144
|
"devDependencies": {
|
|
144
145
|
"@almadar/eslint-plugin": ">=2.3.0",
|
|
145
|
-
"@almadar/std": ">=3.6.0",
|
|
146
146
|
"@react-three/postprocessing": "3.0.4",
|
|
147
147
|
"@storybook/addon-docs": "^10.2.6",
|
|
148
148
|
"@storybook/addon-links": "^10.2.6",
|
package/tailwind-preset.cjs
CHANGED
|
@@ -84,7 +84,176 @@ module.exports = {
|
|
|
84
84
|
'duration-200',
|
|
85
85
|
'ring-2',
|
|
86
86
|
'ring-primary',
|
|
87
|
-
|
|
87
|
+
|
|
88
|
+
// Auto-added by audit-tailwind-safelist.ts (2026-03-28)
|
|
89
|
+
'active:scale-[var(--active-scale)]',
|
|
90
|
+
'animate-[combat-flash_0.2s_ease-in-out_2]',
|
|
91
|
+
'animate-[combat-heal-glow_0.8s_ease-in-out]',
|
|
92
|
+
'animate-[combat-pulse-red_0.5s_ease-in-out]',
|
|
93
|
+
'animate-[combat-shake_0.3s_ease-in-out]',
|
|
94
|
+
'animate-[shake_0.3s_ease-in-out]',
|
|
95
|
+
'aspect-[3/4]',
|
|
96
|
+
'bg-[radial-gradient(circle_at_center,rgba(34,197,94,0.2),transparent_70%)]',
|
|
97
|
+
'bg-[radial-gradient(ellipse_at_top,var(--color-primary)/0.08,transparent_60%),',
|
|
98
|
+
'radial-gradient(ellipse_at_bottom_right,var(--color-accent)/0.06,transparent_50%)]',
|
|
99
|
+
'bg-[var(--color-background)]',
|
|
100
|
+
'bg-[var(--color-card)]',
|
|
101
|
+
'bg-[var(--color-table-header)]',
|
|
102
|
+
'bg-accent/10',
|
|
103
|
+
'bg-accent/20',
|
|
104
|
+
'bg-background/80',
|
|
105
|
+
'bg-card/80',
|
|
106
|
+
'bg-error/10',
|
|
107
|
+
'bg-foreground/0',
|
|
108
|
+
'bg-foreground/50',
|
|
109
|
+
'bg-info/10',
|
|
110
|
+
'bg-muted/20',
|
|
111
|
+
'bg-muted/30',
|
|
112
|
+
'bg-muted/50',
|
|
113
|
+
'bg-muted/60',
|
|
114
|
+
'bg-primary/10',
|
|
115
|
+
'bg-primary/20',
|
|
116
|
+
'bg-primary/8',
|
|
117
|
+
'bg-success/10',
|
|
118
|
+
'bg-success/20',
|
|
119
|
+
'bg-surface/60',
|
|
120
|
+
'bg-surface/80',
|
|
121
|
+
'bg-warning/10',
|
|
122
|
+
'border-[length:2px]',
|
|
123
|
+
'border-[length:var(--border-width-thin)]',
|
|
124
|
+
'border-[length:var(--border-width)]',
|
|
125
|
+
'border-[var(--color-border)]',
|
|
126
|
+
'border-[var(--color-table-border)]',
|
|
127
|
+
'border-accent/30',
|
|
128
|
+
'border-b-[length:var(--border-width)]',
|
|
129
|
+
'border-border/40',
|
|
130
|
+
'border-error/30',
|
|
131
|
+
'border-error/50',
|
|
132
|
+
'border-info/30',
|
|
133
|
+
'border-l-[3px]',
|
|
134
|
+
'border-l-[length:var(--border-width)]',
|
|
135
|
+
'border-primary/30',
|
|
136
|
+
'border-r-[length:var(--border-width)]',
|
|
137
|
+
'border-success/30',
|
|
138
|
+
'border-t-[length:var(--border-width)]',
|
|
139
|
+
'border-warning/30',
|
|
140
|
+
'border-x-[length:var(--border-width)]',
|
|
141
|
+
'dark:bg-foreground/70',
|
|
142
|
+
'dark:hover:bg-error/20',
|
|
143
|
+
'data-[active=true]',
|
|
144
|
+
'duration-[var(--transition-fast)]',
|
|
145
|
+
'duration-[var(--transition-normal)]',
|
|
146
|
+
'focus:ring-[length:var(--focus-ring-width)]',
|
|
147
|
+
'focus:ring-offset-[length:var(--focus-ring-offset)]',
|
|
148
|
+
'font-[var(--font-weight-bold)]',
|
|
149
|
+
'font-[var(--font-weight-medium)]',
|
|
150
|
+
'from-[var(--color-primary)]',
|
|
151
|
+
'group-hover:bg-foreground/20',
|
|
152
|
+
'h-[18px]',
|
|
153
|
+
'h-[1em]',
|
|
154
|
+
'h-[80px]',
|
|
155
|
+
'hover:bg-[var(--color-card)]',
|
|
156
|
+
'hover:bg-[var(--color-surface-hover)]',
|
|
157
|
+
'hover:bg-[var(--color-table-row-hover)]',
|
|
158
|
+
'hover:bg-error/10',
|
|
159
|
+
'hover:bg-error/80',
|
|
160
|
+
'hover:bg-muted/50',
|
|
161
|
+
'hover:bg-muted/80',
|
|
162
|
+
'hover:bg-primary/10',
|
|
163
|
+
'hover:border-[var(--color-border-hover)]',
|
|
164
|
+
'hover:border-l-[var(--color-muted)]',
|
|
165
|
+
'left-[-5px]',
|
|
166
|
+
'lg:max-w-[50%]',
|
|
167
|
+
'lg:min-w-[45%]',
|
|
168
|
+
'max-h-[1000px]',
|
|
169
|
+
'max-h-[280px]',
|
|
170
|
+
'max-h-[500px]',
|
|
171
|
+
'max-h-[80vh]',
|
|
172
|
+
'max-w-[120px]',
|
|
173
|
+
'max-w-[160px]',
|
|
174
|
+
'max-w-[180px]',
|
|
175
|
+
'max-w-[200px]',
|
|
176
|
+
'max-w-[280px]',
|
|
177
|
+
'max-w-[300px]',
|
|
178
|
+
'max-w-[400px]',
|
|
179
|
+
'max-w-[60%]',
|
|
180
|
+
'max-w-[75%]',
|
|
181
|
+
'max-w-[80%]',
|
|
182
|
+
'min-h-[200px]',
|
|
183
|
+
'min-h-[240px]',
|
|
184
|
+
'min-h-[24px]',
|
|
185
|
+
'min-h-[2rem]',
|
|
186
|
+
'min-h-[400px]',
|
|
187
|
+
'min-h-[44px]',
|
|
188
|
+
'min-h-[4px]',
|
|
189
|
+
'min-h-[600px]',
|
|
190
|
+
'min-h-[60px]',
|
|
191
|
+
'min-h-[60vh]',
|
|
192
|
+
'min-h-[80px]',
|
|
193
|
+
'min-h-[80vh]',
|
|
194
|
+
'min-w-[100px]',
|
|
195
|
+
'min-w-[120px]',
|
|
196
|
+
'min-w-[130px]',
|
|
197
|
+
'min-w-[140px]',
|
|
198
|
+
'min-w-[160px]',
|
|
199
|
+
'min-w-[18px]',
|
|
200
|
+
'min-w-[2.5rem]',
|
|
201
|
+
'min-w-[200px]',
|
|
202
|
+
'min-w-[20px]',
|
|
203
|
+
'min-w-[2rem]',
|
|
204
|
+
'min-w-[300px]',
|
|
205
|
+
'min-w-[3ch]',
|
|
206
|
+
'min-w-[3rem]',
|
|
207
|
+
'min-w-[40px]',
|
|
208
|
+
'min-w-[44px]',
|
|
209
|
+
'min-w-[60px]',
|
|
210
|
+
'min-w-[65px]',
|
|
211
|
+
'min-w-[800px]',
|
|
212
|
+
'min-w-[80px]',
|
|
213
|
+
'ml-[1px]',
|
|
214
|
+
'ml-[calc(1.5rem)]',
|
|
215
|
+
'peer-focus:ring-error/20',
|
|
216
|
+
'peer-focus:ring-ring/20',
|
|
217
|
+
'placeholder:text-[var(--color-placeholder)]',
|
|
218
|
+
'ring-accent/20',
|
|
219
|
+
'ring-accent/50',
|
|
220
|
+
'ring-error/20',
|
|
221
|
+
'ring-info/20',
|
|
222
|
+
'ring-muted-foreground/20',
|
|
223
|
+
'ring-primary/30',
|
|
224
|
+
'ring-success/20',
|
|
225
|
+
'ring-warning/20',
|
|
226
|
+
'rounded-[var(--radius-md)]',
|
|
227
|
+
'scale-[1.05]',
|
|
228
|
+
'shadow-[0_-4px_6px_-1px_rgb(0,0,0,0.05)]',
|
|
229
|
+
'shadow-[0_0_10px_rgba(251,191,36,0.5)]',
|
|
230
|
+
'shadow-[0_0_6px_rgba(59,130,246,0.3)]',
|
|
231
|
+
'shadow-[0_0_8px_rgba(168,85,247,0.4)]',
|
|
232
|
+
'text-[0.65rem]',
|
|
233
|
+
'text-[10px]',
|
|
234
|
+
'text-[11px]',
|
|
235
|
+
'text-[12px]',
|
|
236
|
+
'text-[13px]',
|
|
237
|
+
'text-[14px]',
|
|
238
|
+
'text-[15px]',
|
|
239
|
+
'text-[8px]',
|
|
240
|
+
'text-[9px]',
|
|
241
|
+
'text-[var(--color-foreground)]',
|
|
242
|
+
'text-[var(--color-muted-foreground)]',
|
|
243
|
+
'text-[var(--icon-color,currentColor)]',
|
|
244
|
+
'text-foreground/30',
|
|
245
|
+
'text-foreground/60',
|
|
246
|
+
'text-foreground/70',
|
|
247
|
+
'text-foreground/80',
|
|
248
|
+
'text-muted-foreground/50',
|
|
249
|
+
'to-[var(--color-secondary)]',
|
|
250
|
+
'w-[280px]',
|
|
251
|
+
'w-[2px]',
|
|
252
|
+
'w-[480px]',
|
|
253
|
+
'w-[640px]',
|
|
254
|
+
'will-change-[opacity,transform]',
|
|
255
|
+
'z-[60]',
|
|
256
|
+
],
|
|
88
257
|
theme: {
|
|
89
258
|
fontFamily: {
|
|
90
259
|
sans: ['var(--font-family)', 'ui-sans-serif', 'system-ui', 'sans-serif'],
|