@sia-ui/react-web 0.3.1 → 0.4.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/CHANGELOG.md +23 -0
- package/README.md +36 -0
- package/dist/index.cjs +95 -10
- package/dist/index.css +205 -42
- package/dist/index.d.cts +35 -6
- package/dist/index.d.ts +35 -6
- package/dist/index.js +93 -11
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @sia-ui/react-web
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Améliore la navigation et les réglages responsives : le `Drawer` conserve ses
|
|
8
|
+
classes internes avec une `className` personnalisée, anime correctement ses
|
|
9
|
+
quatre positions et expose une fermeture explicite dans `AppShell`. Uniformise
|
|
10
|
+
les scrollbars globales, allège les sous-menus du `Sidebar`, renforce le
|
|
11
|
+
contraste du `ToggleGroup`, ajoute `SettingsIcon` et fournit `AppShellBrand`
|
|
12
|
+
ainsi qu'`AppShellRailItem` pour adapter automatiquement icônes et libellés au
|
|
13
|
+
rail réduit.
|
|
14
|
+
|
|
15
|
+
## 0.3.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Ajoute l’identité visuelle officielle de SIA UI et améliore la documentation publique, les changelogs et les ressources de contribution.
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @sia-ui/headless@0.3.2
|
|
22
|
+
- @sia-ui/react@0.3.2
|
|
23
|
+
- @sia-ui/tokens@0.3.2
|
|
24
|
+
- @sia-ui/utils@0.3.2
|
|
25
|
+
|
|
3
26
|
## 0.3.1
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<p align="center"><img src="https://beatjo.github.io/sia-ui-site/brand/sia-ui-logo.png" alt="SIA UI" width="320"></p>
|
|
2
|
+
|
|
1
3
|
# @sia-ui/react-web
|
|
2
4
|
|
|
3
5
|
Les composants SIA UI pour le DOM.
|
|
@@ -67,6 +69,40 @@ Le contenu ci-dessous reprend intégralement `CHANGELOG.md` pour rester visible
|
|
|
67
69
|
|
|
68
70
|
# @sia-ui/react-web
|
|
69
71
|
|
|
72
|
+
## 0.4.0
|
|
73
|
+
|
|
74
|
+
### Minor Changes
|
|
75
|
+
|
|
76
|
+
- Améliore la navigation et les réglages responsives : le `Drawer` conserve ses
|
|
77
|
+
classes internes avec une `className` personnalisée, anime correctement ses
|
|
78
|
+
quatre positions et expose une fermeture explicite dans `AppShell`. Uniformise
|
|
79
|
+
les scrollbars globales, allège les sous-menus du `Sidebar`, renforce le
|
|
80
|
+
contraste du `ToggleGroup`, ajoute `SettingsIcon` et fournit `AppShellBrand`
|
|
81
|
+
ainsi qu'`AppShellRailItem` pour adapter automatiquement icônes et libellés au
|
|
82
|
+
rail réduit.
|
|
83
|
+
|
|
84
|
+
## 0.3.2
|
|
85
|
+
|
|
86
|
+
### Patch Changes
|
|
87
|
+
|
|
88
|
+
- Ajoute l’identité visuelle officielle de SIA UI et améliore la documentation publique, les changelogs et les ressources de contribution.
|
|
89
|
+
- Updated dependencies
|
|
90
|
+
- @sia-ui/headless@0.3.2
|
|
91
|
+
- @sia-ui/react@0.3.2
|
|
92
|
+
- @sia-ui/tokens@0.3.2
|
|
93
|
+
- @sia-ui/utils@0.3.2
|
|
94
|
+
|
|
95
|
+
## 0.3.1
|
|
96
|
+
|
|
97
|
+
### Patch Changes
|
|
98
|
+
|
|
99
|
+
- Expose public contribution flow on npm
|
|
100
|
+
- Updated dependencies
|
|
101
|
+
- @sia-ui/headless@0.3.1
|
|
102
|
+
- @sia-ui/react@0.3.1
|
|
103
|
+
- @sia-ui/tokens@0.3.1
|
|
104
|
+
- @sia-ui/utils@0.3.1
|
|
105
|
+
|
|
70
106
|
## 0.3.0
|
|
71
107
|
|
|
72
108
|
### Minor Changes
|
package/dist/index.cjs
CHANGED
|
@@ -135,6 +135,12 @@ function InfoIcon(props) {
|
|
|
135
135
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 11v5M12 7.5h.01" })
|
|
136
136
|
] });
|
|
137
137
|
}
|
|
138
|
+
function SettingsIcon(props) {
|
|
139
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(IconBase, { ...props, children: [
|
|
140
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3" }),
|
|
141
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-2.8 2.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.2h-4V21a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1L4.2 17l.1-.1a1.7 1.7 0 0 0 .3-1.9A1.7 1.7 0 0 0 3 14H2.8v-4H3a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9L4.2 7 7 4.2l.1.1A1.7 1.7 0 0 0 9 4.6 1.7 1.7 0 0 0 10 3v-.2h4V3a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1L19.8 7l-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.2v4H21a1.7 1.7 0 0 0-1.6 1Z" })
|
|
142
|
+
] });
|
|
143
|
+
}
|
|
138
144
|
function EyeIcon(props) {
|
|
139
145
|
return /* @__PURE__ */ jsxRuntime.jsxs(IconBase, { ...props, children: [
|
|
140
146
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2 12s3.5-6.5 10-6.5S22 12 22 12s-3.5 6.5-10 6.5S2 12 2 12Z" }),
|
|
@@ -283,6 +289,7 @@ var Drawer = React.forwardRef(
|
|
|
283
289
|
closeOnOutsideClick = true,
|
|
284
290
|
closeOnEsc = true,
|
|
285
291
|
children,
|
|
292
|
+
className,
|
|
286
293
|
...rest
|
|
287
294
|
}, ref) => {
|
|
288
295
|
const {
|
|
@@ -342,6 +349,7 @@ var Drawer = React.forwardRef(
|
|
|
342
349
|
"div",
|
|
343
350
|
{
|
|
344
351
|
className: "sia-drawer-root",
|
|
352
|
+
"data-state": state,
|
|
345
353
|
style: { zIndex: zIndexRef.current ?? void 0 },
|
|
346
354
|
children: [
|
|
347
355
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sia-drawer-overlay" }),
|
|
@@ -356,7 +364,8 @@ var Drawer = React.forwardRef(
|
|
|
356
364
|
"sia-drawer",
|
|
357
365
|
`sia-drawer-${position}`,
|
|
358
366
|
`sia-drawer-${size}`,
|
|
359
|
-
state === "closing" && "is-closing"
|
|
367
|
+
state === "closing" && "is-closing",
|
|
368
|
+
className
|
|
360
369
|
),
|
|
361
370
|
...rest,
|
|
362
371
|
children
|
|
@@ -390,7 +399,7 @@ function DrawerClose() {
|
|
|
390
399
|
className: "sia-drawer-close",
|
|
391
400
|
onClick: ctx.close,
|
|
392
401
|
"aria-label": "Fermer",
|
|
393
|
-
children: "
|
|
402
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(XIcon, { "aria-hidden": "true" })
|
|
394
403
|
}
|
|
395
404
|
);
|
|
396
405
|
}
|
|
@@ -623,7 +632,14 @@ function Ligne({
|
|
|
623
632
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
624
633
|
item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-sidebar__icon", "aria-hidden": "true", children: item.icon }),
|
|
625
634
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-sidebar__label", children: item.label }),
|
|
626
|
-
item.badge !== void 0 && !collapsed && /* @__PURE__ */ jsxRuntime.jsx(
|
|
635
|
+
item.badge !== void 0 && !collapsed && /* @__PURE__ */ jsxRuntime.jsx(
|
|
636
|
+
"span",
|
|
637
|
+
{
|
|
638
|
+
className: "sia-sidebar__badge",
|
|
639
|
+
"data-sia-badge": typeof item.badge === "string" || typeof item.badge === "number" ? String(item.badge) : void 0,
|
|
640
|
+
children: item.badge
|
|
641
|
+
}
|
|
642
|
+
),
|
|
627
643
|
porteUnePastille && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-sidebar__dot", "aria-hidden": "true" }),
|
|
628
644
|
aDesEnfants && !collapsed && /* @__PURE__ */ jsxRuntime.jsx(
|
|
629
645
|
"span",
|
|
@@ -785,7 +801,14 @@ function NoeudRail(props) {
|
|
|
785
801
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { ...panelProps, children: [
|
|
786
802
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sia-sidebar-flyout__title", children: [
|
|
787
803
|
item.label,
|
|
788
|
-
item.badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
804
|
+
item.badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
805
|
+
"span",
|
|
806
|
+
{
|
|
807
|
+
className: "sia-sidebar__badge",
|
|
808
|
+
"data-sia-badge": typeof item.badge === "string" || typeof item.badge === "number" ? String(item.badge) : void 0,
|
|
809
|
+
children: item.badge
|
|
810
|
+
}
|
|
811
|
+
)
|
|
789
812
|
] }),
|
|
790
813
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sia-sidebar-flyout__body", children: enfants.map((enfant) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
791
814
|
Noeud,
|
|
@@ -891,6 +914,50 @@ var BottomTabs = React.memo(function BottomTabs2({
|
|
|
891
914
|
)
|
|
892
915
|
] });
|
|
893
916
|
});
|
|
917
|
+
function AppShellBrand({
|
|
918
|
+
icon,
|
|
919
|
+
name,
|
|
920
|
+
description,
|
|
921
|
+
className,
|
|
922
|
+
...props
|
|
923
|
+
}) {
|
|
924
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("sia-shell-brand", className), ...props, children: [
|
|
925
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-shell-brand__icon", "aria-hidden": "true", children: icon }),
|
|
926
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sia-shell-brand__copy", children: [
|
|
927
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-shell-brand__name", children: name }),
|
|
928
|
+
description !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-shell-brand__description", children: description })
|
|
929
|
+
] })
|
|
930
|
+
] });
|
|
931
|
+
}
|
|
932
|
+
function AppShellRailItem({
|
|
933
|
+
as = "div",
|
|
934
|
+
icon,
|
|
935
|
+
label,
|
|
936
|
+
className,
|
|
937
|
+
href,
|
|
938
|
+
type = "button",
|
|
939
|
+
disabled,
|
|
940
|
+
...props
|
|
941
|
+
}) {
|
|
942
|
+
const Component = as;
|
|
943
|
+
const elementProps = {
|
|
944
|
+
...props,
|
|
945
|
+
...as === "a" && href ? { href } : {},
|
|
946
|
+
...as === "button" ? { type, disabled } : {}
|
|
947
|
+
};
|
|
948
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
949
|
+
Component,
|
|
950
|
+
{
|
|
951
|
+
className: utils.cn("sia-shell-rail-item", className),
|
|
952
|
+
"aria-label": props["aria-label"] ?? (as !== "div" ? label : void 0),
|
|
953
|
+
...elementProps,
|
|
954
|
+
children: [
|
|
955
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-shell-rail-item__icon", "aria-hidden": "true", children: icon }),
|
|
956
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sia-shell-rail-item__label", children: label })
|
|
957
|
+
]
|
|
958
|
+
}
|
|
959
|
+
);
|
|
960
|
+
}
|
|
894
961
|
function AppShell({
|
|
895
962
|
nav,
|
|
896
963
|
children,
|
|
@@ -1033,10 +1100,19 @@ function AppShell({
|
|
|
1033
1100
|
]
|
|
1034
1101
|
}
|
|
1035
1102
|
),
|
|
1036
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1103
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1104
|
+
"main",
|
|
1105
|
+
{
|
|
1106
|
+
className: utils.cn(
|
|
1107
|
+
"sia-shell__content",
|
|
1108
|
+
`sia-shell__content--${contentWidth}`
|
|
1109
|
+
),
|
|
1110
|
+
children: [
|
|
1111
|
+
page && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sia-shell__page", children: page }),
|
|
1112
|
+
children
|
|
1113
|
+
]
|
|
1114
|
+
}
|
|
1115
|
+
),
|
|
1040
1116
|
footer && /* @__PURE__ */ jsxRuntime.jsx("footer", { className: "sia-shell__footer", children: footer })
|
|
1041
1117
|
] }),
|
|
1042
1118
|
compact && montrerOnglets && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1049,7 +1125,7 @@ function AppShell({
|
|
|
1049
1125
|
...montrerTiroir ? { onMore: () => setTiroirOuvert(true) } : {}
|
|
1050
1126
|
}
|
|
1051
1127
|
),
|
|
1052
|
-
compact && montrerTiroir && /* @__PURE__ */ jsxRuntime.
|
|
1128
|
+
compact && montrerTiroir && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1053
1129
|
Drawer,
|
|
1054
1130
|
{
|
|
1055
1131
|
open: tiroirOuvert,
|
|
@@ -1057,7 +1133,13 @@ function AppShell({
|
|
|
1057
1133
|
position: side,
|
|
1058
1134
|
size: "sm",
|
|
1059
1135
|
className: "sia-shell__drawer",
|
|
1060
|
-
children:
|
|
1136
|
+
children: [
|
|
1137
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Drawer.Header, { children: [
|
|
1138
|
+
/* @__PURE__ */ jsxRuntime.jsx(Drawer.Title, { children: "Navigation" }),
|
|
1139
|
+
/* @__PURE__ */ jsxRuntime.jsx(Drawer.Close, {})
|
|
1140
|
+
] }),
|
|
1141
|
+
/* @__PURE__ */ jsxRuntime.jsx(Drawer.Body, { children: barre })
|
|
1142
|
+
]
|
|
1061
1143
|
}
|
|
1062
1144
|
)
|
|
1063
1145
|
]
|
|
@@ -7140,6 +7222,8 @@ exports.Alert = Alert;
|
|
|
7140
7222
|
exports.AlertCircleIcon = AlertCircleIcon;
|
|
7141
7223
|
exports.AmountDisplay = AmountDisplay;
|
|
7142
7224
|
exports.AppShell = AppShell;
|
|
7225
|
+
exports.AppShellBrand = AppShellBrand;
|
|
7226
|
+
exports.AppShellRailItem = AppShellRailItem;
|
|
7143
7227
|
exports.ArrowRightIcon = ArrowRightIcon;
|
|
7144
7228
|
exports.AspectRatio = AspectRatio;
|
|
7145
7229
|
exports.AsyncState = AsyncState;
|
|
@@ -7248,6 +7332,7 @@ exports.ScrollArea = ScrollArea;
|
|
|
7248
7332
|
exports.SearchIcon = SearchIcon;
|
|
7249
7333
|
exports.SearchInput = SearchInput;
|
|
7250
7334
|
exports.Select = Select;
|
|
7335
|
+
exports.SettingsIcon = SettingsIcon;
|
|
7251
7336
|
exports.Sidebar = Sidebar;
|
|
7252
7337
|
exports.Skeleton = Skeleton;
|
|
7253
7338
|
exports.Slider = Slider;
|
package/dist/index.css
CHANGED
|
@@ -136,6 +136,36 @@
|
|
|
136
136
|
--sia-elevation-overlay: 0 10px 30px rgb(15 23 42 / 0.12), 0 2px 8px rgb(15 23 42 / 0.06);
|
|
137
137
|
--sia-elevation-modal: 0 24px 60px rgb(15 23 42 / 0.22);
|
|
138
138
|
}
|
|
139
|
+
:root {
|
|
140
|
+
--sia-scrollbar-size:.625rem;
|
|
141
|
+
--sia-scrollbar-thumb:color-mix(in srgb,var(--sia-muted) 52%,transparent);
|
|
142
|
+
--sia-scrollbar-thumb-hover:color-mix(in srgb,var(--sia-muted) 76%,transparent);
|
|
143
|
+
}
|
|
144
|
+
:where(*) {
|
|
145
|
+
scrollbar-width: thin;
|
|
146
|
+
scrollbar-color: var(--sia-scrollbar-thumb) transparent;
|
|
147
|
+
}
|
|
148
|
+
:where(*)::-webkit-scrollbar {
|
|
149
|
+
width: var(--sia-scrollbar-size);
|
|
150
|
+
height: var(--sia-scrollbar-size);
|
|
151
|
+
}
|
|
152
|
+
:where(*)::-webkit-scrollbar-track,
|
|
153
|
+
:where(*)::-webkit-scrollbar-corner {
|
|
154
|
+
background: transparent;
|
|
155
|
+
}
|
|
156
|
+
:where(*)::-webkit-scrollbar-thumb {
|
|
157
|
+
min-width: 2.5rem;
|
|
158
|
+
min-height: 2.5rem;
|
|
159
|
+
border: 2px solid transparent;
|
|
160
|
+
border-radius: var(--sia-radius-full,9999px);
|
|
161
|
+
background: var(--sia-scrollbar-thumb);
|
|
162
|
+
background-clip: content-box;
|
|
163
|
+
}
|
|
164
|
+
:where(*)::-webkit-scrollbar-thumb:hover {
|
|
165
|
+
border: 2px solid transparent;
|
|
166
|
+
background: var(--sia-scrollbar-thumb-hover);
|
|
167
|
+
background-clip: content-box;
|
|
168
|
+
}
|
|
139
169
|
.sia-radius--default {
|
|
140
170
|
border-radius: var(--sia-radius);
|
|
141
171
|
}
|
|
@@ -1226,45 +1256,58 @@
|
|
|
1226
1256
|
.sia-drawer-overlay {
|
|
1227
1257
|
position: absolute;
|
|
1228
1258
|
inset: 0;
|
|
1229
|
-
|
|
1230
|
-
|
|
1259
|
+
z-index: 0;
|
|
1260
|
+
background: rgb(2 6 23 / .52);
|
|
1261
|
+
animation: sia-drawer-fade-in var(--sia-duration-base) var(--sia-easing-entrance) both;
|
|
1262
|
+
}
|
|
1263
|
+
.sia-drawer-root[data-state=closing] .sia-drawer-overlay {
|
|
1264
|
+
animation: sia-drawer-fade-out var(--sia-duration-base) var(--sia-easing-exit) both;
|
|
1231
1265
|
}
|
|
1232
1266
|
.sia-drawer {
|
|
1233
1267
|
position: absolute;
|
|
1234
|
-
|
|
1268
|
+
z-index: 1;
|
|
1269
|
+
color: var(--sia-foreground, #0f172a);
|
|
1270
|
+
background: var(--sia-background, #fff);
|
|
1271
|
+
border: 1px solid var(--sia-border, #e2e8f0);
|
|
1235
1272
|
display: flex;
|
|
1236
1273
|
flex-direction: column;
|
|
1237
|
-
width: var(--sia-drawer-width);
|
|
1238
|
-
|
|
1274
|
+
width: min(var(--sia-drawer-width), calc(100vw - 2rem));
|
|
1275
|
+
overflow: hidden;
|
|
1276
|
+
isolation: isolate;
|
|
1277
|
+
box-shadow: 0 20px 50px rgb(2 6 23 / .24);
|
|
1239
1278
|
will-change: transform;
|
|
1240
1279
|
}
|
|
1241
1280
|
.sia-drawer-right {
|
|
1242
1281
|
right: 0;
|
|
1243
1282
|
top: 0;
|
|
1244
1283
|
height: 100%;
|
|
1245
|
-
animation:
|
|
1284
|
+
animation: sia-drawer-in-right var(--sia-duration-slow) var(--sia-easing-entrance) both;
|
|
1246
1285
|
}
|
|
1247
1286
|
.sia-drawer-left {
|
|
1248
1287
|
left: 0;
|
|
1249
1288
|
top: 0;
|
|
1250
1289
|
height: 100%;
|
|
1251
|
-
animation:
|
|
1290
|
+
animation: sia-drawer-in-left var(--sia-duration-slow) var(--sia-easing-entrance) both;
|
|
1252
1291
|
}
|
|
1253
1292
|
.sia-drawer-top {
|
|
1254
1293
|
top: 0;
|
|
1255
1294
|
left: 0;
|
|
1256
1295
|
right: 0;
|
|
1257
|
-
|
|
1296
|
+
width: 100%;
|
|
1297
|
+
max-width: 100%;
|
|
1298
|
+
max-height: min(80vh, 48rem);
|
|
1258
1299
|
--sia-drawer-width: 100% !important;
|
|
1259
|
-
animation:
|
|
1300
|
+
animation: sia-drawer-in-top var(--sia-duration-slow) var(--sia-easing-entrance) both;
|
|
1260
1301
|
}
|
|
1261
1302
|
.sia-drawer-bottom {
|
|
1262
1303
|
bottom: 0;
|
|
1263
1304
|
left: 0;
|
|
1264
1305
|
right: 0;
|
|
1265
|
-
|
|
1306
|
+
width: 100%;
|
|
1307
|
+
max-width: 100%;
|
|
1308
|
+
max-height: min(80vh, 48rem);
|
|
1266
1309
|
--sia-drawer-width: 100% !important;
|
|
1267
|
-
animation:
|
|
1310
|
+
animation: sia-drawer-in-bottom var(--sia-duration-slow) var(--sia-easing-entrance) both;
|
|
1268
1311
|
}
|
|
1269
1312
|
.sia-drawer-sm {
|
|
1270
1313
|
--sia-drawer-width: 320px;
|
|
@@ -1281,13 +1324,14 @@
|
|
|
1281
1324
|
.sia-drawer-header,
|
|
1282
1325
|
.sia-drawer-footer {
|
|
1283
1326
|
padding: 16px;
|
|
1284
|
-
border-bottom: 1px solid var(--sia-
|
|
1327
|
+
border-bottom: 1px solid var(--sia-border, #e2e8f0);
|
|
1285
1328
|
display: flex;
|
|
1286
1329
|
align-items: center;
|
|
1287
1330
|
justify-content: space-between;
|
|
1288
1331
|
}
|
|
1289
1332
|
.sia-drawer-footer {
|
|
1290
|
-
border-top: 1px solid var(--sia-
|
|
1333
|
+
border-top: 1px solid var(--sia-border, #e2e8f0);
|
|
1334
|
+
border-bottom: 0;
|
|
1291
1335
|
margin-top: auto;
|
|
1292
1336
|
}
|
|
1293
1337
|
.sia-drawer-body {
|
|
@@ -1295,29 +1339,62 @@
|
|
|
1295
1339
|
overflow-y: auto;
|
|
1296
1340
|
}
|
|
1297
1341
|
.sia-drawer-title {
|
|
1342
|
+
margin: 0;
|
|
1298
1343
|
font-size: 1.1rem;
|
|
1299
1344
|
font-weight: 600;
|
|
1300
1345
|
}
|
|
1301
1346
|
.sia-drawer-close {
|
|
1347
|
+
display: grid;
|
|
1348
|
+
place-items: center;
|
|
1349
|
+
flex: none;
|
|
1350
|
+
width: 2.25rem;
|
|
1351
|
+
height: 2.25rem;
|
|
1302
1352
|
margin-left: auto;
|
|
1303
|
-
|
|
1304
|
-
|
|
1353
|
+
padding: 0;
|
|
1354
|
+
color: var(--sia-muted, #64748b);
|
|
1355
|
+
background: transparent;
|
|
1356
|
+
border: 0;
|
|
1357
|
+
border-radius: var(--sia-radius, .375rem);
|
|
1305
1358
|
cursor: pointer;
|
|
1306
|
-
|
|
1359
|
+
}
|
|
1360
|
+
.sia-drawer-close:hover {
|
|
1361
|
+
color: var(--sia-foreground,#0f172a);
|
|
1362
|
+
background: var(--sia-surface,#f8fafc);
|
|
1363
|
+
}
|
|
1364
|
+
.sia-drawer-close:focus-visible {
|
|
1365
|
+
outline: 2px solid var(--sia-primary,#2563eb);
|
|
1366
|
+
outline-offset: 2px;
|
|
1367
|
+
}
|
|
1368
|
+
.sia-drawer-close svg {
|
|
1369
|
+
width: 1.125rem;
|
|
1370
|
+
height: 1.125rem;
|
|
1307
1371
|
}
|
|
1308
1372
|
.sia-drawer-right.is-closing {
|
|
1309
|
-
animation:
|
|
1373
|
+
animation: sia-drawer-out-right var(--sia-duration-base) var(--sia-easing-exit) both;
|
|
1310
1374
|
}
|
|
1311
1375
|
.sia-drawer-left.is-closing {
|
|
1312
|
-
animation:
|
|
1376
|
+
animation: sia-drawer-out-left var(--sia-duration-base) var(--sia-easing-exit) both;
|
|
1313
1377
|
}
|
|
1314
1378
|
.sia-drawer-top.is-closing {
|
|
1315
|
-
animation:
|
|
1379
|
+
animation: sia-drawer-out-top var(--sia-duration-base) var(--sia-easing-exit) both;
|
|
1316
1380
|
}
|
|
1317
1381
|
.sia-drawer-bottom.is-closing {
|
|
1318
|
-
animation:
|
|
1382
|
+
animation: sia-drawer-out-bottom var(--sia-duration-base) var(--sia-easing-exit) both;
|
|
1383
|
+
}
|
|
1384
|
+
@keyframes sia-drawer-fade-in {
|
|
1385
|
+
from {
|
|
1386
|
+
opacity: 0;
|
|
1387
|
+
}
|
|
1388
|
+
to {
|
|
1389
|
+
opacity: 1;
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
@keyframes sia-drawer-fade-out {
|
|
1393
|
+
to {
|
|
1394
|
+
opacity: 0;
|
|
1395
|
+
}
|
|
1319
1396
|
}
|
|
1320
|
-
@keyframes
|
|
1397
|
+
@keyframes sia-drawer-in-right {
|
|
1321
1398
|
from {
|
|
1322
1399
|
transform: translateX(100%);
|
|
1323
1400
|
}
|
|
@@ -1325,7 +1402,7 @@
|
|
|
1325
1402
|
transform: translateX(0);
|
|
1326
1403
|
}
|
|
1327
1404
|
}
|
|
1328
|
-
@keyframes
|
|
1405
|
+
@keyframes sia-drawer-in-left {
|
|
1329
1406
|
from {
|
|
1330
1407
|
transform: translateX(-100%);
|
|
1331
1408
|
}
|
|
@@ -1333,7 +1410,7 @@
|
|
|
1333
1410
|
transform: translateX(0);
|
|
1334
1411
|
}
|
|
1335
1412
|
}
|
|
1336
|
-
@keyframes
|
|
1413
|
+
@keyframes sia-drawer-in-top {
|
|
1337
1414
|
from {
|
|
1338
1415
|
transform: translateY(-100%);
|
|
1339
1416
|
}
|
|
@@ -1341,7 +1418,7 @@
|
|
|
1341
1418
|
transform: translateY(0);
|
|
1342
1419
|
}
|
|
1343
1420
|
}
|
|
1344
|
-
@keyframes
|
|
1421
|
+
@keyframes sia-drawer-in-bottom {
|
|
1345
1422
|
from {
|
|
1346
1423
|
transform: translateY(100%);
|
|
1347
1424
|
}
|
|
@@ -1349,22 +1426,22 @@
|
|
|
1349
1426
|
transform: translateY(0);
|
|
1350
1427
|
}
|
|
1351
1428
|
}
|
|
1352
|
-
@keyframes
|
|
1429
|
+
@keyframes sia-drawer-out-right {
|
|
1353
1430
|
to {
|
|
1354
1431
|
transform: translateX(100%);
|
|
1355
1432
|
}
|
|
1356
1433
|
}
|
|
1357
|
-
@keyframes
|
|
1434
|
+
@keyframes sia-drawer-out-left {
|
|
1358
1435
|
to {
|
|
1359
1436
|
transform: translateX(-100%);
|
|
1360
1437
|
}
|
|
1361
1438
|
}
|
|
1362
|
-
@keyframes
|
|
1439
|
+
@keyframes sia-drawer-out-top {
|
|
1363
1440
|
to {
|
|
1364
1441
|
transform: translateY(-100%);
|
|
1365
1442
|
}
|
|
1366
1443
|
}
|
|
1367
|
-
@keyframes
|
|
1444
|
+
@keyframes sia-drawer-out-bottom {
|
|
1368
1445
|
to {
|
|
1369
1446
|
transform: translateY(100%);
|
|
1370
1447
|
}
|
|
@@ -1388,10 +1465,12 @@
|
|
|
1388
1465
|
.sia-sidebar__body {
|
|
1389
1466
|
flex: 1;
|
|
1390
1467
|
min-height: 0;
|
|
1468
|
+
padding-inline-end: .375rem;
|
|
1391
1469
|
overflow-y: auto;
|
|
1392
1470
|
display: grid;
|
|
1393
1471
|
gap: .125rem;
|
|
1394
1472
|
align-content: start;
|
|
1473
|
+
scrollbar-gutter: stable;
|
|
1395
1474
|
}
|
|
1396
1475
|
.sia-sidebar__header,
|
|
1397
1476
|
.sia-sidebar__footer {
|
|
@@ -1524,15 +1603,6 @@
|
|
|
1524
1603
|
.sia-sidebar__sub {
|
|
1525
1604
|
position: relative;
|
|
1526
1605
|
}
|
|
1527
|
-
.sia-sidebar__sub::before {
|
|
1528
|
-
content: "";
|
|
1529
|
-
position: absolute;
|
|
1530
|
-
top: .375rem;
|
|
1531
|
-
bottom: .375rem;
|
|
1532
|
-
left: 1.25rem;
|
|
1533
|
-
width: 1px;
|
|
1534
|
-
background: var(--sia-border);
|
|
1535
|
-
}
|
|
1536
1606
|
.sia-sidebar--collapsed .sia-sidebar__item {
|
|
1537
1607
|
justify-content: center;
|
|
1538
1608
|
padding-inline: .5rem;
|
|
@@ -1599,9 +1669,6 @@
|
|
|
1599
1669
|
display: grid;
|
|
1600
1670
|
gap: .125rem;
|
|
1601
1671
|
}
|
|
1602
|
-
.sia-sidebar-flyout .sia-sidebar__sub::before {
|
|
1603
|
-
display: none;
|
|
1604
|
-
}
|
|
1605
1672
|
.sia-sidebar-flyout .sia-sidebar__item--child {
|
|
1606
1673
|
padding-left: calc(.625rem + var(--sia-sidebar-depth, 1) * .6rem);
|
|
1607
1674
|
}
|
|
@@ -1698,6 +1765,95 @@
|
|
|
1698
1765
|
background: transparent;
|
|
1699
1766
|
padding: .5rem;
|
|
1700
1767
|
}
|
|
1768
|
+
.sia-shell-brand,
|
|
1769
|
+
.sia-shell-rail-item {
|
|
1770
|
+
display: flex;
|
|
1771
|
+
align-items: center;
|
|
1772
|
+
gap: .625rem;
|
|
1773
|
+
min-width: 0;
|
|
1774
|
+
}
|
|
1775
|
+
.sia-shell-brand {
|
|
1776
|
+
padding: .25rem;
|
|
1777
|
+
}
|
|
1778
|
+
.sia-shell-brand__icon {
|
|
1779
|
+
display: grid;
|
|
1780
|
+
place-items: center;
|
|
1781
|
+
flex: none;
|
|
1782
|
+
width: 2.75rem;
|
|
1783
|
+
height: 2.75rem;
|
|
1784
|
+
}
|
|
1785
|
+
.sia-shell-brand__icon > img,
|
|
1786
|
+
.sia-shell-brand__icon > svg {
|
|
1787
|
+
max-width: 100%;
|
|
1788
|
+
max-height: 100%;
|
|
1789
|
+
object-fit: contain;
|
|
1790
|
+
}
|
|
1791
|
+
.sia-shell-brand__copy {
|
|
1792
|
+
min-width: 0;
|
|
1793
|
+
}
|
|
1794
|
+
.sia-shell-brand__name,
|
|
1795
|
+
.sia-shell-brand__description {
|
|
1796
|
+
display: block;
|
|
1797
|
+
overflow: hidden;
|
|
1798
|
+
text-overflow: ellipsis;
|
|
1799
|
+
white-space: nowrap;
|
|
1800
|
+
}
|
|
1801
|
+
.sia-shell-brand__name {
|
|
1802
|
+
font-weight: 700;
|
|
1803
|
+
}
|
|
1804
|
+
.sia-shell-brand__description {
|
|
1805
|
+
margin-top: .1rem;
|
|
1806
|
+
color: var(--sia-muted);
|
|
1807
|
+
font-size: .72rem;
|
|
1808
|
+
}
|
|
1809
|
+
.sia-shell-rail-item {
|
|
1810
|
+
width: 100%;
|
|
1811
|
+
padding: .375rem;
|
|
1812
|
+
border: 0;
|
|
1813
|
+
border-radius: var(--sia-radius);
|
|
1814
|
+
background: transparent;
|
|
1815
|
+
color: var(--sia-muted);
|
|
1816
|
+
font: inherit;
|
|
1817
|
+
font-size: .75rem;
|
|
1818
|
+
text-decoration: none;
|
|
1819
|
+
}
|
|
1820
|
+
.sia-shell-rail-item:is(button, a) {
|
|
1821
|
+
cursor: pointer;
|
|
1822
|
+
}
|
|
1823
|
+
.sia-shell-rail-item:is(button, a):hover {
|
|
1824
|
+
background: var(--sia-surface-raised, var(--sia-surface));
|
|
1825
|
+
color: var(--sia-foreground);
|
|
1826
|
+
}
|
|
1827
|
+
.sia-shell-rail-item:disabled {
|
|
1828
|
+
opacity: .55;
|
|
1829
|
+
cursor: not-allowed;
|
|
1830
|
+
}
|
|
1831
|
+
.sia-shell-rail-item:is(button, a):focus-visible {
|
|
1832
|
+
outline: 2px solid var(--sia-primary);
|
|
1833
|
+
outline-offset: 2px;
|
|
1834
|
+
}
|
|
1835
|
+
.sia-shell-rail-item__icon {
|
|
1836
|
+
display: grid;
|
|
1837
|
+
place-items: center;
|
|
1838
|
+
flex: none;
|
|
1839
|
+
width: 1.5rem;
|
|
1840
|
+
height: 1.5rem;
|
|
1841
|
+
}
|
|
1842
|
+
.sia-shell-rail-item__label {
|
|
1843
|
+
min-width: 0;
|
|
1844
|
+
overflow: hidden;
|
|
1845
|
+
text-overflow: ellipsis;
|
|
1846
|
+
white-space: nowrap;
|
|
1847
|
+
}
|
|
1848
|
+
[data-collapsed] .sia-shell-brand,
|
|
1849
|
+
[data-collapsed] .sia-shell-rail-item {
|
|
1850
|
+
justify-content: center;
|
|
1851
|
+
gap: 0;
|
|
1852
|
+
}
|
|
1853
|
+
[data-collapsed] .sia-shell-brand__copy,
|
|
1854
|
+
[data-collapsed] .sia-shell-rail-item__label {
|
|
1855
|
+
display: none;
|
|
1856
|
+
}
|
|
1701
1857
|
.sia-shell__main {
|
|
1702
1858
|
display: flex;
|
|
1703
1859
|
flex-direction: column;
|
|
@@ -1780,6 +1936,12 @@
|
|
|
1780
1936
|
.sia-shell--with-tabs .sia-shell__main {
|
|
1781
1937
|
padding-bottom: calc(var(--sia-shell-tabs) + env(safe-area-inset-bottom, 0px));
|
|
1782
1938
|
}
|
|
1939
|
+
.sia-shell__drawer .sia-drawer-body {
|
|
1940
|
+
flex: 1;
|
|
1941
|
+
min-height: 0;
|
|
1942
|
+
padding: .5rem;
|
|
1943
|
+
overflow: hidden;
|
|
1944
|
+
}
|
|
1783
1945
|
.sia-shell__drawer .sia-sidebar {
|
|
1784
1946
|
height: 100%;
|
|
1785
1947
|
}
|
|
@@ -6312,9 +6474,10 @@
|
|
|
6312
6474
|
--sia-toggle-color: var(--sia-primary);
|
|
6313
6475
|
display: inline-flex;
|
|
6314
6476
|
padding: .2rem;
|
|
6315
|
-
border: 1px solid var(--sia-border);
|
|
6477
|
+
border: 1px solid color-mix(in srgb, var(--sia-muted) 28%, var(--sia-border));
|
|
6316
6478
|
border-radius: calc(var(--sia-radius) + 2px);
|
|
6317
|
-
background: var(--sia-
|
|
6479
|
+
background: color-mix(in srgb, var(--sia-muted) 12%, var(--sia-background));
|
|
6480
|
+
box-shadow: inset 0 1px 2px rgb(15 23 42 / .05);
|
|
6318
6481
|
}
|
|
6319
6482
|
.sia-toggle-group__item {
|
|
6320
6483
|
position: relative;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { ReactNode, ReactElement, RefObject, ImgHTMLAttributes,
|
|
3
|
+
import { ReactNode, ReactElement, HTMLAttributes, RefObject, ImgHTMLAttributes, ButtonHTMLAttributes, InputHTMLAttributes, Key, TextareaHTMLAttributes, ForwardRefExoticComponent, RefAttributes, SVGProps, CSSProperties, PropsWithChildren } from 'react';
|
|
4
4
|
import { ComponentTone, ComponentSize } from '@sia-ui/tokens';
|
|
5
5
|
import * as _sia_ui_headless from '@sia-ui/headless';
|
|
6
6
|
import { PermissionRule, Placement, SliderValue, FormAdapter, FormValidator, TableQueryStorage, TableQueryState, TableQuery, SessionStore, SessionState, ToastPlacement, ToastId, ToastOptions } from '@sia-ui/headless';
|
|
@@ -256,6 +256,34 @@ type AppShellCollapsible = "icon" | "offcanvas" | false;
|
|
|
256
256
|
*/
|
|
257
257
|
type AppShellMobileNav = "drawer" | "tabs" | "both";
|
|
258
258
|
type AppShellContentWidth = "wide" | "narrow" | "full";
|
|
259
|
+
interface AppShellBrandProps extends HTMLAttributes<HTMLDivElement> {
|
|
260
|
+
/** Symbole conservé lorsque la navigation devient un rail. */
|
|
261
|
+
icon: ReactNode;
|
|
262
|
+
/** Nom du produit, masqué automatiquement dans le rail. */
|
|
263
|
+
name: ReactNode;
|
|
264
|
+
/** Ligne secondaire facultative, masquée avec le nom. */
|
|
265
|
+
description?: ReactNode;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Identité de produit adaptée au rail de l'`AppShell`.
|
|
269
|
+
*
|
|
270
|
+
* L'application fournit le symbole et le texte une seule fois. Le composant
|
|
271
|
+
* masque sa copie dès que son parent reçoit `data-collapsed`.
|
|
272
|
+
*/
|
|
273
|
+
declare function AppShellBrand({ icon, name, description, className, ...props }: AppShellBrandProps): react_jsx_runtime.JSX.Element;
|
|
274
|
+
interface AppShellRailItemProps extends HTMLAttributes<HTMLElement> {
|
|
275
|
+
/** Élément rendu : contenu simple, action ou lien. */
|
|
276
|
+
as?: "div" | "button" | "a";
|
|
277
|
+
/** Symbole toujours visible dans le rail. */
|
|
278
|
+
icon: ReactNode;
|
|
279
|
+
/** Libellé masqué visuellement dans le rail et conservé comme nom accessible. */
|
|
280
|
+
label: string;
|
|
281
|
+
href?: string;
|
|
282
|
+
type?: "button" | "submit" | "reset";
|
|
283
|
+
disabled?: boolean;
|
|
284
|
+
}
|
|
285
|
+
/** Contenu icône + libellé qui s'adapte automatiquement au rail. */
|
|
286
|
+
declare function AppShellRailItem({ as, icon, label, className, href, type, disabled, ...props }: AppShellRailItemProps): react_jsx_runtime.JSX.Element;
|
|
259
287
|
interface AppShellProps {
|
|
260
288
|
nav: SidebarEntry[];
|
|
261
289
|
children: ReactNode;
|
|
@@ -295,8 +323,8 @@ interface AppShellProps {
|
|
|
295
323
|
/**
|
|
296
324
|
* En tête de barre latérale : logo, nom du produit, sélecteur d'entité.
|
|
297
325
|
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
326
|
+
* `AppShellBrand` masque son texte automatiquement dans le rail. Un contenu
|
|
327
|
+
* entièrement personnalisé reçoit toujours `data-collapsed` sur son parent.
|
|
300
328
|
*/
|
|
301
329
|
brand?: ReactNode;
|
|
302
330
|
/**
|
|
@@ -304,8 +332,8 @@ interface AppShellProps {
|
|
|
304
332
|
*
|
|
305
333
|
* C'est la place de la déconnexion et des réglages du compte — ce qui sort
|
|
306
334
|
* de l'application, par opposition à l'en-tête, réservé à ce qui agit sur
|
|
307
|
-
* l'écran courant.
|
|
308
|
-
*
|
|
335
|
+
* l'écran courant. `AppShellRailItem` masque son libellé automatiquement ;
|
|
336
|
+
* un contenu personnalisé peut encore lire `data-collapsed` sur son parent.
|
|
309
337
|
*/
|
|
310
338
|
sidebarFooter?: ReactNode;
|
|
311
339
|
/** La barre du haut : recherche, notifications, avatar de compte. */
|
|
@@ -2550,6 +2578,7 @@ declare function TrashIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
|
2550
2578
|
declare function UploadIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2551
2579
|
declare function AlertCircleIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2552
2580
|
declare function InfoIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2581
|
+
declare function SettingsIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2553
2582
|
declare function EyeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2554
2583
|
declare function EyeOffIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2555
2584
|
|
|
@@ -3397,4 +3426,4 @@ interface YearPickerProps {
|
|
|
3397
3426
|
*/
|
|
3398
3427
|
declare function YearPicker({ value, defaultValue, min, max, onValueChange, className }: YearPickerProps): react_jsx_runtime.JSX.Element;
|
|
3399
3428
|
|
|
3400
|
-
export { Accordion, type AccordionItem, type AccordionProps, Alert, AlertCircleIcon, type AlertProps, AmountDisplay, type AmountDisplayProps, AppShell, type AppShellCollapsible, type AppShellContentWidth, type AppShellMobileNav, type AppShellProps, ArrowRightIcon, AspectRatio, type AspectRatioProps, AsyncState, type AsyncStateProps, type AuditEvent, AuditMeta, type AuditMetaProps, AuthLayout, type AuthLayoutProps, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, type AvatarTint, type AvatarVariant, Badge, type BadgeProps, BottomTabs, type BottomTabsProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarDay, type CalendarEvent, CalendarIcon, type CalendarMode, type CalendarProps, type CalendarRangeValue, Can, type CanProps, Card, CardBody, CardFooter, CardHeader, Chart, type ChartProps, type ChartSeries, CheckIcon, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClockIcon, Collapse, type CollapseProps, ColorPicker, type ColorPickerProps, type ColumnCardRole, type CommandItem, CommandPalette, type CommandPaletteProps, ConfirmDialog, type ConfirmDialogProps, Container, ContextMenu, type ContextMenuProps, Countdown, type CountdownProps, type CrudActionOptions, type CrudCreateOptions, type CrudDialogOptions, type CrudDialogState, CrudDialogs, CrudPage, type CrudPageProps, CurrencyInput, type CurrencyInputProps, DEFAULT_COUNTRIES, DataTable, type DataTableColumn, type DataTableProps, type DataTableView, DatePicker, type DatePickerProps, DateRangeFilter, type DateRangeFilterProps, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DateRangeValue, DateTimePicker, type DateTimePickerProps, type DateTimeValue, type DescriptionItem, Descriptions, type DescriptionsProps, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, type DrawerComponent, DrawerFooter, DrawerHeader, type DrawerPosition, type DrawerProps, type DrawerRef, type DrawerSize, DrawerTitle, DropdownMenu, type DropdownMenuProps, DurationDisplay, type DurationDisplayProps, EmptyState, type EmptyStateProps, EntityMeta, type EntityMetaProps, ErrorState, type ErrorStateProps, EventCalendar, type EventCalendarProps, EyeIcon, EyeOffIcon, Field, type FieldBindingLike, type FieldProps, type FieldStatus, type FieldType, type FieldValue, FileUpload, type FileUploadProps, FiltersBar, type FiltersBarProps, Form, type FormEntry, Field as FormField, type FormFieldConfig, type FormFieldGroup, type FieldProps as FormFieldProps, type FormProps, type FormShape, Heading, type HeadingProps, HoverCard, type HoverCardProps, type IDrawerProps, type ILabelProps, type ITooltipProps, type ITooltipVariant, IconButton, type IconButtonProps, ImageUpload, type ImageUploadProps, InfoIcon, InlineCode, Input, InputNumber, type InputNumberProps, type InputProps, JsonEditor, type JsonEditorProps, KpiGrid, type KpiGridProps, Label, type LabelProps, MarkdownEditor, type MarkdownEditorProps, type MenuEntry, type MenuItem, type MenuLabel, MenuList, type MenuListProps, type MenuSeparator, MiniCalendar, MinusIcon, Modal, type ModalProps, MonthPicker, type MonthPickerProps, MoreHorizontalIcon, MultiSelect, type MultiSelectProps, OtpInput, type OtpInputProps, Overlay, type OverlayPlacement, type OverlayProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, type PasswordStrength, PermissionGate, type PermissionGateProps, type PhoneCountry, PhoneInput, type PhoneInputProps, PlusIcon, Popover, type PopoverProps, Progress, type ProgressProps, QRCode, type QRCodeProps, Radio, RadioButton, type RadioButtonProps, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, type ReferenceOption, ReferenceSelect, type ReferenceSelectProps, RelativeTime, type RelativeTimeProps, RequireSession, type RequireSessionProps, ResizablePanel, type ResizablePanelProps, type ResourceDefinition, type ResourceField, RichTextEditor, type RichTextEditorProps, type RowAction, ScrollArea, type ScrollAreaProps, SearchIcon, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, Sidebar, type SidebarEntry, type SidebarItem, type SidebarProps, type SidebarRenderLink, type SidebarSection, type SidebarState, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderRangeValue, Sparkline, type SparklineProps, Spinner, type SpinnerProps, Stack, StarIcon, StatCard, type StatCardProps, Statistic, type StatisticProps, type StepItem, type StepStatus, Steps, type StepsProps, Switch, type SwitchProps, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, TagsInput, type TagsInputProps, Text, type TextProps, Textarea, type TextareaProps, type TimeParts, TimePicker, type TimePickerProps, TimeRangePicker, type TimeRangePickerProps, type TimeRangeValue, Timeline, type TimelineItem, type TimelineProps, Timer, type TimerProps, ToastProvider, type ToastProviderProps, Toaster, type ToasterProps, Toggle, ToggleGroup, type ToggleGroupOption, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, type TooltipVariant, Tour, type TourProps, type TourStep, Transfer, type TransferItem, type TransferProps, TrashIcon, Tree, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, UnsavedChangesGuard, type UnsavedChangesGuardProps, UploadIcon, type UseDataTableQueryOptions, WeekPicker, type WeekPickerProps, XIcon, YearPicker, type YearPickerProps, confirmUnsavedNavigation, createUrlTableStorage, defineResource, formatDuration, formatTimeValue, initialsOf, parseTimeValue, resourceColumns, resourceDefaults, resourceDetailColumns, resourceFormFields, resourcePermissions, resourceRowKey, resourceSearchKeys, resourceValidator, tintForName, useDataTableQuery, useToast };
|
|
3429
|
+
export { Accordion, type AccordionItem, type AccordionProps, Alert, AlertCircleIcon, type AlertProps, AmountDisplay, type AmountDisplayProps, AppShell, AppShellBrand, type AppShellBrandProps, type AppShellCollapsible, type AppShellContentWidth, type AppShellMobileNav, type AppShellProps, AppShellRailItem, type AppShellRailItemProps, ArrowRightIcon, AspectRatio, type AspectRatioProps, AsyncState, type AsyncStateProps, type AuditEvent, AuditMeta, type AuditMetaProps, AuthLayout, type AuthLayoutProps, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, type AvatarTint, type AvatarVariant, Badge, type BadgeProps, BottomTabs, type BottomTabsProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarDay, type CalendarEvent, CalendarIcon, type CalendarMode, type CalendarProps, type CalendarRangeValue, Can, type CanProps, Card, CardBody, CardFooter, CardHeader, Chart, type ChartProps, type ChartSeries, CheckIcon, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClockIcon, Collapse, type CollapseProps, ColorPicker, type ColorPickerProps, type ColumnCardRole, type CommandItem, CommandPalette, type CommandPaletteProps, ConfirmDialog, type ConfirmDialogProps, Container, ContextMenu, type ContextMenuProps, Countdown, type CountdownProps, type CrudActionOptions, type CrudCreateOptions, type CrudDialogOptions, type CrudDialogState, CrudDialogs, CrudPage, type CrudPageProps, CurrencyInput, type CurrencyInputProps, DEFAULT_COUNTRIES, DataTable, type DataTableColumn, type DataTableProps, type DataTableView, DatePicker, type DatePickerProps, DateRangeFilter, type DateRangeFilterProps, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DateRangeValue, DateTimePicker, type DateTimePickerProps, type DateTimeValue, type DescriptionItem, Descriptions, type DescriptionsProps, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, type DrawerComponent, DrawerFooter, DrawerHeader, type DrawerPosition, type DrawerProps, type DrawerRef, type DrawerSize, DrawerTitle, DropdownMenu, type DropdownMenuProps, DurationDisplay, type DurationDisplayProps, EmptyState, type EmptyStateProps, EntityMeta, type EntityMetaProps, ErrorState, type ErrorStateProps, EventCalendar, type EventCalendarProps, EyeIcon, EyeOffIcon, Field, type FieldBindingLike, type FieldProps, type FieldStatus, type FieldType, type FieldValue, FileUpload, type FileUploadProps, FiltersBar, type FiltersBarProps, Form, type FormEntry, Field as FormField, type FormFieldConfig, type FormFieldGroup, type FieldProps as FormFieldProps, type FormProps, type FormShape, Heading, type HeadingProps, HoverCard, type HoverCardProps, type IDrawerProps, type ILabelProps, type ITooltipProps, type ITooltipVariant, IconButton, type IconButtonProps, ImageUpload, type ImageUploadProps, InfoIcon, InlineCode, Input, InputNumber, type InputNumberProps, type InputProps, JsonEditor, type JsonEditorProps, KpiGrid, type KpiGridProps, Label, type LabelProps, MarkdownEditor, type MarkdownEditorProps, type MenuEntry, type MenuItem, type MenuLabel, MenuList, type MenuListProps, type MenuSeparator, MiniCalendar, MinusIcon, Modal, type ModalProps, MonthPicker, type MonthPickerProps, MoreHorizontalIcon, MultiSelect, type MultiSelectProps, OtpInput, type OtpInputProps, Overlay, type OverlayPlacement, type OverlayProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, type PasswordStrength, PermissionGate, type PermissionGateProps, type PhoneCountry, PhoneInput, type PhoneInputProps, PlusIcon, Popover, type PopoverProps, Progress, type ProgressProps, QRCode, type QRCodeProps, Radio, RadioButton, type RadioButtonProps, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, type ReferenceOption, ReferenceSelect, type ReferenceSelectProps, RelativeTime, type RelativeTimeProps, RequireSession, type RequireSessionProps, ResizablePanel, type ResizablePanelProps, type ResourceDefinition, type ResourceField, RichTextEditor, type RichTextEditorProps, type RowAction, ScrollArea, type ScrollAreaProps, SearchIcon, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, SettingsIcon, Sidebar, type SidebarEntry, type SidebarItem, type SidebarProps, type SidebarRenderLink, type SidebarSection, type SidebarState, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderRangeValue, Sparkline, type SparklineProps, Spinner, type SpinnerProps, Stack, StarIcon, StatCard, type StatCardProps, Statistic, type StatisticProps, type StepItem, type StepStatus, Steps, type StepsProps, Switch, type SwitchProps, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, TagsInput, type TagsInputProps, Text, type TextProps, Textarea, type TextareaProps, type TimeParts, TimePicker, type TimePickerProps, TimeRangePicker, type TimeRangePickerProps, type TimeRangeValue, Timeline, type TimelineItem, type TimelineProps, Timer, type TimerProps, ToastProvider, type ToastProviderProps, Toaster, type ToasterProps, Toggle, ToggleGroup, type ToggleGroupOption, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, type TooltipVariant, Tour, type TourProps, type TourStep, Transfer, type TransferItem, type TransferProps, TrashIcon, Tree, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, UnsavedChangesGuard, type UnsavedChangesGuardProps, UploadIcon, type UseDataTableQueryOptions, WeekPicker, type WeekPickerProps, XIcon, YearPicker, type YearPickerProps, confirmUnsavedNavigation, createUrlTableStorage, defineResource, formatDuration, formatTimeValue, initialsOf, parseTimeValue, resourceColumns, resourceDefaults, resourceDetailColumns, resourceFormFields, resourcePermissions, resourceRowKey, resourceSearchKeys, resourceValidator, tintForName, useDataTableQuery, useToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { ReactNode, ReactElement, RefObject, ImgHTMLAttributes,
|
|
3
|
+
import { ReactNode, ReactElement, HTMLAttributes, RefObject, ImgHTMLAttributes, ButtonHTMLAttributes, InputHTMLAttributes, Key, TextareaHTMLAttributes, ForwardRefExoticComponent, RefAttributes, SVGProps, CSSProperties, PropsWithChildren } from 'react';
|
|
4
4
|
import { ComponentTone, ComponentSize } from '@sia-ui/tokens';
|
|
5
5
|
import * as _sia_ui_headless from '@sia-ui/headless';
|
|
6
6
|
import { PermissionRule, Placement, SliderValue, FormAdapter, FormValidator, TableQueryStorage, TableQueryState, TableQuery, SessionStore, SessionState, ToastPlacement, ToastId, ToastOptions } from '@sia-ui/headless';
|
|
@@ -256,6 +256,34 @@ type AppShellCollapsible = "icon" | "offcanvas" | false;
|
|
|
256
256
|
*/
|
|
257
257
|
type AppShellMobileNav = "drawer" | "tabs" | "both";
|
|
258
258
|
type AppShellContentWidth = "wide" | "narrow" | "full";
|
|
259
|
+
interface AppShellBrandProps extends HTMLAttributes<HTMLDivElement> {
|
|
260
|
+
/** Symbole conservé lorsque la navigation devient un rail. */
|
|
261
|
+
icon: ReactNode;
|
|
262
|
+
/** Nom du produit, masqué automatiquement dans le rail. */
|
|
263
|
+
name: ReactNode;
|
|
264
|
+
/** Ligne secondaire facultative, masquée avec le nom. */
|
|
265
|
+
description?: ReactNode;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Identité de produit adaptée au rail de l'`AppShell`.
|
|
269
|
+
*
|
|
270
|
+
* L'application fournit le symbole et le texte une seule fois. Le composant
|
|
271
|
+
* masque sa copie dès que son parent reçoit `data-collapsed`.
|
|
272
|
+
*/
|
|
273
|
+
declare function AppShellBrand({ icon, name, description, className, ...props }: AppShellBrandProps): react_jsx_runtime.JSX.Element;
|
|
274
|
+
interface AppShellRailItemProps extends HTMLAttributes<HTMLElement> {
|
|
275
|
+
/** Élément rendu : contenu simple, action ou lien. */
|
|
276
|
+
as?: "div" | "button" | "a";
|
|
277
|
+
/** Symbole toujours visible dans le rail. */
|
|
278
|
+
icon: ReactNode;
|
|
279
|
+
/** Libellé masqué visuellement dans le rail et conservé comme nom accessible. */
|
|
280
|
+
label: string;
|
|
281
|
+
href?: string;
|
|
282
|
+
type?: "button" | "submit" | "reset";
|
|
283
|
+
disabled?: boolean;
|
|
284
|
+
}
|
|
285
|
+
/** Contenu icône + libellé qui s'adapte automatiquement au rail. */
|
|
286
|
+
declare function AppShellRailItem({ as, icon, label, className, href, type, disabled, ...props }: AppShellRailItemProps): react_jsx_runtime.JSX.Element;
|
|
259
287
|
interface AppShellProps {
|
|
260
288
|
nav: SidebarEntry[];
|
|
261
289
|
children: ReactNode;
|
|
@@ -295,8 +323,8 @@ interface AppShellProps {
|
|
|
295
323
|
/**
|
|
296
324
|
* En tête de barre latérale : logo, nom du produit, sélecteur d'entité.
|
|
297
325
|
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
326
|
+
* `AppShellBrand` masque son texte automatiquement dans le rail. Un contenu
|
|
327
|
+
* entièrement personnalisé reçoit toujours `data-collapsed` sur son parent.
|
|
300
328
|
*/
|
|
301
329
|
brand?: ReactNode;
|
|
302
330
|
/**
|
|
@@ -304,8 +332,8 @@ interface AppShellProps {
|
|
|
304
332
|
*
|
|
305
333
|
* C'est la place de la déconnexion et des réglages du compte — ce qui sort
|
|
306
334
|
* de l'application, par opposition à l'en-tête, réservé à ce qui agit sur
|
|
307
|
-
* l'écran courant.
|
|
308
|
-
*
|
|
335
|
+
* l'écran courant. `AppShellRailItem` masque son libellé automatiquement ;
|
|
336
|
+
* un contenu personnalisé peut encore lire `data-collapsed` sur son parent.
|
|
309
337
|
*/
|
|
310
338
|
sidebarFooter?: ReactNode;
|
|
311
339
|
/** La barre du haut : recherche, notifications, avatar de compte. */
|
|
@@ -2550,6 +2578,7 @@ declare function TrashIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
|
2550
2578
|
declare function UploadIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2551
2579
|
declare function AlertCircleIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2552
2580
|
declare function InfoIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2581
|
+
declare function SettingsIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2553
2582
|
declare function EyeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2554
2583
|
declare function EyeOffIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
2555
2584
|
|
|
@@ -3397,4 +3426,4 @@ interface YearPickerProps {
|
|
|
3397
3426
|
*/
|
|
3398
3427
|
declare function YearPicker({ value, defaultValue, min, max, onValueChange, className }: YearPickerProps): react_jsx_runtime.JSX.Element;
|
|
3399
3428
|
|
|
3400
|
-
export { Accordion, type AccordionItem, type AccordionProps, Alert, AlertCircleIcon, type AlertProps, AmountDisplay, type AmountDisplayProps, AppShell, type AppShellCollapsible, type AppShellContentWidth, type AppShellMobileNav, type AppShellProps, ArrowRightIcon, AspectRatio, type AspectRatioProps, AsyncState, type AsyncStateProps, type AuditEvent, AuditMeta, type AuditMetaProps, AuthLayout, type AuthLayoutProps, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, type AvatarTint, type AvatarVariant, Badge, type BadgeProps, BottomTabs, type BottomTabsProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarDay, type CalendarEvent, CalendarIcon, type CalendarMode, type CalendarProps, type CalendarRangeValue, Can, type CanProps, Card, CardBody, CardFooter, CardHeader, Chart, type ChartProps, type ChartSeries, CheckIcon, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClockIcon, Collapse, type CollapseProps, ColorPicker, type ColorPickerProps, type ColumnCardRole, type CommandItem, CommandPalette, type CommandPaletteProps, ConfirmDialog, type ConfirmDialogProps, Container, ContextMenu, type ContextMenuProps, Countdown, type CountdownProps, type CrudActionOptions, type CrudCreateOptions, type CrudDialogOptions, type CrudDialogState, CrudDialogs, CrudPage, type CrudPageProps, CurrencyInput, type CurrencyInputProps, DEFAULT_COUNTRIES, DataTable, type DataTableColumn, type DataTableProps, type DataTableView, DatePicker, type DatePickerProps, DateRangeFilter, type DateRangeFilterProps, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DateRangeValue, DateTimePicker, type DateTimePickerProps, type DateTimeValue, type DescriptionItem, Descriptions, type DescriptionsProps, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, type DrawerComponent, DrawerFooter, DrawerHeader, type DrawerPosition, type DrawerProps, type DrawerRef, type DrawerSize, DrawerTitle, DropdownMenu, type DropdownMenuProps, DurationDisplay, type DurationDisplayProps, EmptyState, type EmptyStateProps, EntityMeta, type EntityMetaProps, ErrorState, type ErrorStateProps, EventCalendar, type EventCalendarProps, EyeIcon, EyeOffIcon, Field, type FieldBindingLike, type FieldProps, type FieldStatus, type FieldType, type FieldValue, FileUpload, type FileUploadProps, FiltersBar, type FiltersBarProps, Form, type FormEntry, Field as FormField, type FormFieldConfig, type FormFieldGroup, type FieldProps as FormFieldProps, type FormProps, type FormShape, Heading, type HeadingProps, HoverCard, type HoverCardProps, type IDrawerProps, type ILabelProps, type ITooltipProps, type ITooltipVariant, IconButton, type IconButtonProps, ImageUpload, type ImageUploadProps, InfoIcon, InlineCode, Input, InputNumber, type InputNumberProps, type InputProps, JsonEditor, type JsonEditorProps, KpiGrid, type KpiGridProps, Label, type LabelProps, MarkdownEditor, type MarkdownEditorProps, type MenuEntry, type MenuItem, type MenuLabel, MenuList, type MenuListProps, type MenuSeparator, MiniCalendar, MinusIcon, Modal, type ModalProps, MonthPicker, type MonthPickerProps, MoreHorizontalIcon, MultiSelect, type MultiSelectProps, OtpInput, type OtpInputProps, Overlay, type OverlayPlacement, type OverlayProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, type PasswordStrength, PermissionGate, type PermissionGateProps, type PhoneCountry, PhoneInput, type PhoneInputProps, PlusIcon, Popover, type PopoverProps, Progress, type ProgressProps, QRCode, type QRCodeProps, Radio, RadioButton, type RadioButtonProps, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, type ReferenceOption, ReferenceSelect, type ReferenceSelectProps, RelativeTime, type RelativeTimeProps, RequireSession, type RequireSessionProps, ResizablePanel, type ResizablePanelProps, type ResourceDefinition, type ResourceField, RichTextEditor, type RichTextEditorProps, type RowAction, ScrollArea, type ScrollAreaProps, SearchIcon, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, Sidebar, type SidebarEntry, type SidebarItem, type SidebarProps, type SidebarRenderLink, type SidebarSection, type SidebarState, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderRangeValue, Sparkline, type SparklineProps, Spinner, type SpinnerProps, Stack, StarIcon, StatCard, type StatCardProps, Statistic, type StatisticProps, type StepItem, type StepStatus, Steps, type StepsProps, Switch, type SwitchProps, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, TagsInput, type TagsInputProps, Text, type TextProps, Textarea, type TextareaProps, type TimeParts, TimePicker, type TimePickerProps, TimeRangePicker, type TimeRangePickerProps, type TimeRangeValue, Timeline, type TimelineItem, type TimelineProps, Timer, type TimerProps, ToastProvider, type ToastProviderProps, Toaster, type ToasterProps, Toggle, ToggleGroup, type ToggleGroupOption, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, type TooltipVariant, Tour, type TourProps, type TourStep, Transfer, type TransferItem, type TransferProps, TrashIcon, Tree, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, UnsavedChangesGuard, type UnsavedChangesGuardProps, UploadIcon, type UseDataTableQueryOptions, WeekPicker, type WeekPickerProps, XIcon, YearPicker, type YearPickerProps, confirmUnsavedNavigation, createUrlTableStorage, defineResource, formatDuration, formatTimeValue, initialsOf, parseTimeValue, resourceColumns, resourceDefaults, resourceDetailColumns, resourceFormFields, resourcePermissions, resourceRowKey, resourceSearchKeys, resourceValidator, tintForName, useDataTableQuery, useToast };
|
|
3429
|
+
export { Accordion, type AccordionItem, type AccordionProps, Alert, AlertCircleIcon, type AlertProps, AmountDisplay, type AmountDisplayProps, AppShell, AppShellBrand, type AppShellBrandProps, type AppShellCollapsible, type AppShellContentWidth, type AppShellMobileNav, type AppShellProps, AppShellRailItem, type AppShellRailItemProps, ArrowRightIcon, AspectRatio, type AspectRatioProps, AsyncState, type AsyncStateProps, type AuditEvent, AuditMeta, type AuditMetaProps, AuthLayout, type AuthLayoutProps, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, type AvatarTint, type AvatarVariant, Badge, type BadgeProps, BottomTabs, type BottomTabsProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarDay, type CalendarEvent, CalendarIcon, type CalendarMode, type CalendarProps, type CalendarRangeValue, Can, type CanProps, Card, CardBody, CardFooter, CardHeader, Chart, type ChartProps, type ChartSeries, CheckIcon, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClockIcon, Collapse, type CollapseProps, ColorPicker, type ColorPickerProps, type ColumnCardRole, type CommandItem, CommandPalette, type CommandPaletteProps, ConfirmDialog, type ConfirmDialogProps, Container, ContextMenu, type ContextMenuProps, Countdown, type CountdownProps, type CrudActionOptions, type CrudCreateOptions, type CrudDialogOptions, type CrudDialogState, CrudDialogs, CrudPage, type CrudPageProps, CurrencyInput, type CurrencyInputProps, DEFAULT_COUNTRIES, DataTable, type DataTableColumn, type DataTableProps, type DataTableView, DatePicker, type DatePickerProps, DateRangeFilter, type DateRangeFilterProps, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DateRangeValue, DateTimePicker, type DateTimePickerProps, type DateTimeValue, type DescriptionItem, Descriptions, type DescriptionsProps, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, type DrawerComponent, DrawerFooter, DrawerHeader, type DrawerPosition, type DrawerProps, type DrawerRef, type DrawerSize, DrawerTitle, DropdownMenu, type DropdownMenuProps, DurationDisplay, type DurationDisplayProps, EmptyState, type EmptyStateProps, EntityMeta, type EntityMetaProps, ErrorState, type ErrorStateProps, EventCalendar, type EventCalendarProps, EyeIcon, EyeOffIcon, Field, type FieldBindingLike, type FieldProps, type FieldStatus, type FieldType, type FieldValue, FileUpload, type FileUploadProps, FiltersBar, type FiltersBarProps, Form, type FormEntry, Field as FormField, type FormFieldConfig, type FormFieldGroup, type FieldProps as FormFieldProps, type FormProps, type FormShape, Heading, type HeadingProps, HoverCard, type HoverCardProps, type IDrawerProps, type ILabelProps, type ITooltipProps, type ITooltipVariant, IconButton, type IconButtonProps, ImageUpload, type ImageUploadProps, InfoIcon, InlineCode, Input, InputNumber, type InputNumberProps, type InputProps, JsonEditor, type JsonEditorProps, KpiGrid, type KpiGridProps, Label, type LabelProps, MarkdownEditor, type MarkdownEditorProps, type MenuEntry, type MenuItem, type MenuLabel, MenuList, type MenuListProps, type MenuSeparator, MiniCalendar, MinusIcon, Modal, type ModalProps, MonthPicker, type MonthPickerProps, MoreHorizontalIcon, MultiSelect, type MultiSelectProps, OtpInput, type OtpInputProps, Overlay, type OverlayPlacement, type OverlayProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, type PasswordStrength, PermissionGate, type PermissionGateProps, type PhoneCountry, PhoneInput, type PhoneInputProps, PlusIcon, Popover, type PopoverProps, Progress, type ProgressProps, QRCode, type QRCodeProps, Radio, RadioButton, type RadioButtonProps, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, type ReferenceOption, ReferenceSelect, type ReferenceSelectProps, RelativeTime, type RelativeTimeProps, RequireSession, type RequireSessionProps, ResizablePanel, type ResizablePanelProps, type ResourceDefinition, type ResourceField, RichTextEditor, type RichTextEditorProps, type RowAction, ScrollArea, type ScrollAreaProps, SearchIcon, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, SettingsIcon, Sidebar, type SidebarEntry, type SidebarItem, type SidebarProps, type SidebarRenderLink, type SidebarSection, type SidebarState, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderRangeValue, Sparkline, type SparklineProps, Spinner, type SpinnerProps, Stack, StarIcon, StatCard, type StatCardProps, Statistic, type StatisticProps, type StepItem, type StepStatus, Steps, type StepsProps, Switch, type SwitchProps, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, TagsInput, type TagsInputProps, Text, type TextProps, Textarea, type TextareaProps, type TimeParts, TimePicker, type TimePickerProps, TimeRangePicker, type TimeRangePickerProps, type TimeRangeValue, Timeline, type TimelineItem, type TimelineProps, Timer, type TimerProps, ToastProvider, type ToastProviderProps, Toaster, type ToasterProps, Toggle, ToggleGroup, type ToggleGroupOption, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, type TooltipVariant, Tour, type TourProps, type TourStep, Transfer, type TransferItem, type TransferProps, TrashIcon, Tree, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, UnsavedChangesGuard, type UnsavedChangesGuardProps, UploadIcon, type UseDataTableQueryOptions, WeekPicker, type WeekPickerProps, XIcon, YearPicker, type YearPickerProps, confirmUnsavedNavigation, createUrlTableStorage, defineResource, formatDuration, formatTimeValue, initialsOf, parseTimeValue, resourceColumns, resourceDefaults, resourceDetailColumns, resourceFormFields, resourcePermissions, resourceRowKey, resourceSearchKeys, resourceValidator, tintForName, useDataTableQuery, useToast };
|
package/dist/index.js
CHANGED
|
@@ -115,6 +115,12 @@ function InfoIcon(props) {
|
|
|
115
115
|
/* @__PURE__ */ jsx("path", { d: "M12 11v5M12 7.5h.01" })
|
|
116
116
|
] });
|
|
117
117
|
}
|
|
118
|
+
function SettingsIcon(props) {
|
|
119
|
+
return /* @__PURE__ */ jsxs(IconBase, { ...props, children: [
|
|
120
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" }),
|
|
121
|
+
/* @__PURE__ */ jsx("path", { d: "M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-2.8 2.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.2h-4V21a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1L4.2 17l.1-.1a1.7 1.7 0 0 0 .3-1.9A1.7 1.7 0 0 0 3 14H2.8v-4H3a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9L4.2 7 7 4.2l.1.1A1.7 1.7 0 0 0 9 4.6 1.7 1.7 0 0 0 10 3v-.2h4V3a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1L19.8 7l-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.2v4H21a1.7 1.7 0 0 0-1.6 1Z" })
|
|
122
|
+
] });
|
|
123
|
+
}
|
|
118
124
|
function EyeIcon(props) {
|
|
119
125
|
return /* @__PURE__ */ jsxs(IconBase, { ...props, children: [
|
|
120
126
|
/* @__PURE__ */ jsx("path", { d: "M2 12s3.5-6.5 10-6.5S22 12 22 12s-3.5 6.5-10 6.5S2 12 2 12Z" }),
|
|
@@ -263,6 +269,7 @@ var Drawer = forwardRef(
|
|
|
263
269
|
closeOnOutsideClick = true,
|
|
264
270
|
closeOnEsc = true,
|
|
265
271
|
children,
|
|
272
|
+
className,
|
|
266
273
|
...rest
|
|
267
274
|
}, ref) => {
|
|
268
275
|
const {
|
|
@@ -322,6 +329,7 @@ var Drawer = forwardRef(
|
|
|
322
329
|
"div",
|
|
323
330
|
{
|
|
324
331
|
className: "sia-drawer-root",
|
|
332
|
+
"data-state": state,
|
|
325
333
|
style: { zIndex: zIndexRef.current ?? void 0 },
|
|
326
334
|
children: [
|
|
327
335
|
/* @__PURE__ */ jsx("div", { className: "sia-drawer-overlay" }),
|
|
@@ -336,7 +344,8 @@ var Drawer = forwardRef(
|
|
|
336
344
|
"sia-drawer",
|
|
337
345
|
`sia-drawer-${position}`,
|
|
338
346
|
`sia-drawer-${size}`,
|
|
339
|
-
state === "closing" && "is-closing"
|
|
347
|
+
state === "closing" && "is-closing",
|
|
348
|
+
className
|
|
340
349
|
),
|
|
341
350
|
...rest,
|
|
342
351
|
children
|
|
@@ -370,7 +379,7 @@ function DrawerClose() {
|
|
|
370
379
|
className: "sia-drawer-close",
|
|
371
380
|
onClick: ctx.close,
|
|
372
381
|
"aria-label": "Fermer",
|
|
373
|
-
children: "
|
|
382
|
+
children: /* @__PURE__ */ jsx(XIcon, { "aria-hidden": "true" })
|
|
374
383
|
}
|
|
375
384
|
);
|
|
376
385
|
}
|
|
@@ -603,7 +612,14 @@ function Ligne({
|
|
|
603
612
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
604
613
|
item.icon && /* @__PURE__ */ jsx("span", { className: "sia-sidebar__icon", "aria-hidden": "true", children: item.icon }),
|
|
605
614
|
/* @__PURE__ */ jsx("span", { className: "sia-sidebar__label", children: item.label }),
|
|
606
|
-
item.badge !== void 0 && !collapsed && /* @__PURE__ */ jsx(
|
|
615
|
+
item.badge !== void 0 && !collapsed && /* @__PURE__ */ jsx(
|
|
616
|
+
"span",
|
|
617
|
+
{
|
|
618
|
+
className: "sia-sidebar__badge",
|
|
619
|
+
"data-sia-badge": typeof item.badge === "string" || typeof item.badge === "number" ? String(item.badge) : void 0,
|
|
620
|
+
children: item.badge
|
|
621
|
+
}
|
|
622
|
+
),
|
|
607
623
|
porteUnePastille && /* @__PURE__ */ jsx("span", { className: "sia-sidebar__dot", "aria-hidden": "true" }),
|
|
608
624
|
aDesEnfants && !collapsed && /* @__PURE__ */ jsx(
|
|
609
625
|
"span",
|
|
@@ -765,7 +781,14 @@ function NoeudRail(props) {
|
|
|
765
781
|
children: /* @__PURE__ */ jsxs("div", { ...panelProps, children: [
|
|
766
782
|
/* @__PURE__ */ jsxs("div", { className: "sia-sidebar-flyout__title", children: [
|
|
767
783
|
item.label,
|
|
768
|
-
item.badge !== void 0 && /* @__PURE__ */ jsx(
|
|
784
|
+
item.badge !== void 0 && /* @__PURE__ */ jsx(
|
|
785
|
+
"span",
|
|
786
|
+
{
|
|
787
|
+
className: "sia-sidebar__badge",
|
|
788
|
+
"data-sia-badge": typeof item.badge === "string" || typeof item.badge === "number" ? String(item.badge) : void 0,
|
|
789
|
+
children: item.badge
|
|
790
|
+
}
|
|
791
|
+
)
|
|
769
792
|
] }),
|
|
770
793
|
/* @__PURE__ */ jsx("div", { className: "sia-sidebar-flyout__body", children: enfants.map((enfant) => /* @__PURE__ */ jsx(
|
|
771
794
|
Noeud,
|
|
@@ -871,6 +894,50 @@ var BottomTabs = memo(function BottomTabs2({
|
|
|
871
894
|
)
|
|
872
895
|
] });
|
|
873
896
|
});
|
|
897
|
+
function AppShellBrand({
|
|
898
|
+
icon,
|
|
899
|
+
name,
|
|
900
|
+
description,
|
|
901
|
+
className,
|
|
902
|
+
...props
|
|
903
|
+
}) {
|
|
904
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("sia-shell-brand", className), ...props, children: [
|
|
905
|
+
/* @__PURE__ */ jsx("span", { className: "sia-shell-brand__icon", "aria-hidden": "true", children: icon }),
|
|
906
|
+
/* @__PURE__ */ jsxs("span", { className: "sia-shell-brand__copy", children: [
|
|
907
|
+
/* @__PURE__ */ jsx("span", { className: "sia-shell-brand__name", children: name }),
|
|
908
|
+
description !== void 0 && /* @__PURE__ */ jsx("span", { className: "sia-shell-brand__description", children: description })
|
|
909
|
+
] })
|
|
910
|
+
] });
|
|
911
|
+
}
|
|
912
|
+
function AppShellRailItem({
|
|
913
|
+
as = "div",
|
|
914
|
+
icon,
|
|
915
|
+
label,
|
|
916
|
+
className,
|
|
917
|
+
href,
|
|
918
|
+
type = "button",
|
|
919
|
+
disabled,
|
|
920
|
+
...props
|
|
921
|
+
}) {
|
|
922
|
+
const Component = as;
|
|
923
|
+
const elementProps = {
|
|
924
|
+
...props,
|
|
925
|
+
...as === "a" && href ? { href } : {},
|
|
926
|
+
...as === "button" ? { type, disabled } : {}
|
|
927
|
+
};
|
|
928
|
+
return /* @__PURE__ */ jsxs(
|
|
929
|
+
Component,
|
|
930
|
+
{
|
|
931
|
+
className: cn("sia-shell-rail-item", className),
|
|
932
|
+
"aria-label": props["aria-label"] ?? (as !== "div" ? label : void 0),
|
|
933
|
+
...elementProps,
|
|
934
|
+
children: [
|
|
935
|
+
/* @__PURE__ */ jsx("span", { className: "sia-shell-rail-item__icon", "aria-hidden": "true", children: icon }),
|
|
936
|
+
/* @__PURE__ */ jsx("span", { className: "sia-shell-rail-item__label", children: label })
|
|
937
|
+
]
|
|
938
|
+
}
|
|
939
|
+
);
|
|
940
|
+
}
|
|
874
941
|
function AppShell({
|
|
875
942
|
nav,
|
|
876
943
|
children,
|
|
@@ -1013,10 +1080,19 @@ function AppShell({
|
|
|
1013
1080
|
]
|
|
1014
1081
|
}
|
|
1015
1082
|
),
|
|
1016
|
-
/* @__PURE__ */ jsxs(
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1083
|
+
/* @__PURE__ */ jsxs(
|
|
1084
|
+
"main",
|
|
1085
|
+
{
|
|
1086
|
+
className: cn(
|
|
1087
|
+
"sia-shell__content",
|
|
1088
|
+
`sia-shell__content--${contentWidth}`
|
|
1089
|
+
),
|
|
1090
|
+
children: [
|
|
1091
|
+
page && /* @__PURE__ */ jsx("div", { className: "sia-shell__page", children: page }),
|
|
1092
|
+
children
|
|
1093
|
+
]
|
|
1094
|
+
}
|
|
1095
|
+
),
|
|
1020
1096
|
footer && /* @__PURE__ */ jsx("footer", { className: "sia-shell__footer", children: footer })
|
|
1021
1097
|
] }),
|
|
1022
1098
|
compact && montrerOnglets && /* @__PURE__ */ jsx(
|
|
@@ -1029,7 +1105,7 @@ function AppShell({
|
|
|
1029
1105
|
...montrerTiroir ? { onMore: () => setTiroirOuvert(true) } : {}
|
|
1030
1106
|
}
|
|
1031
1107
|
),
|
|
1032
|
-
compact && montrerTiroir && /* @__PURE__ */
|
|
1108
|
+
compact && montrerTiroir && /* @__PURE__ */ jsxs(
|
|
1033
1109
|
Drawer,
|
|
1034
1110
|
{
|
|
1035
1111
|
open: tiroirOuvert,
|
|
@@ -1037,7 +1113,13 @@ function AppShell({
|
|
|
1037
1113
|
position: side,
|
|
1038
1114
|
size: "sm",
|
|
1039
1115
|
className: "sia-shell__drawer",
|
|
1040
|
-
children:
|
|
1116
|
+
children: [
|
|
1117
|
+
/* @__PURE__ */ jsxs(Drawer.Header, { children: [
|
|
1118
|
+
/* @__PURE__ */ jsx(Drawer.Title, { children: "Navigation" }),
|
|
1119
|
+
/* @__PURE__ */ jsx(Drawer.Close, {})
|
|
1120
|
+
] }),
|
|
1121
|
+
/* @__PURE__ */ jsx(Drawer.Body, { children: barre })
|
|
1122
|
+
]
|
|
1041
1123
|
}
|
|
1042
1124
|
)
|
|
1043
1125
|
]
|
|
@@ -7107,4 +7189,4 @@ function YearPicker({ value, defaultValue = (/* @__PURE__ */ new Date()).getFull
|
|
|
7107
7189
|
return /* @__PURE__ */ jsx("select", { className: cn("sia-year-picker", className), value, defaultValue: value === void 0 ? defaultValue : void 0, onChange: (event) => onValueChange?.(Number(event.target.value)), children: years.map((year) => /* @__PURE__ */ jsx("option", { value: year, children: year }, year)) });
|
|
7108
7190
|
}
|
|
7109
7191
|
|
|
7110
|
-
export { Accordion, Alert, AlertCircleIcon, AmountDisplay, AppShell, ArrowRightIcon, AspectRatio, AsyncState, AuditMeta, AuthLayout, Autocomplete, Avatar, AvatarGroup, Badge, BottomTabs, Breadcrumb, Button, Calendar, CalendarIcon, Can, Card, CardBody, CardFooter, CardHeader, Chart, CheckIcon, Checkbox, CheckboxGroup, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClockIcon, Collapse, ColorPicker, CommandPalette, ConfirmDialog, Container, ContextMenu, Countdown, CrudDialogs, CrudPage, CurrencyInput, DEFAULT_COUNTRIES, DataTable, DatePicker, DateRangeFilter, DateRangePicker, DateTimePicker, Descriptions, Divider, Drawer, DrawerBody, DrawerClose, DrawerFooter, DrawerHeader, DrawerTitle, DropdownMenu, DurationDisplay, EmptyState, EntityMeta, ErrorState, EventCalendar, EyeIcon, EyeOffIcon, Field, FileUpload, FiltersBar, Form, Field as FormField, Heading, HoverCard, IconButton, ImageUpload, InfoIcon, InlineCode, Input, InputNumber, JsonEditor, KpiGrid, Label, MarkdownEditor, MenuList, MiniCalendar, MinusIcon, Modal, MonthPicker, MoreHorizontalIcon, MultiSelect, OtpInput, Overlay, PageHeader, Pagination, PasswordInput, PermissionGate, PhoneInput, PlusIcon, Popover, Progress, QRCode, Radio, RadioButton, RadioGroup, Rating, ReferenceSelect, RelativeTime, RequireSession, ResizablePanel, RichTextEditor, ScrollArea, SearchIcon, SearchInput, Select, Sidebar, Skeleton, Slider, Sparkline, Spinner, Stack, StarIcon, StatCard, Statistic, Steps, Switch, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, Text, Textarea, TimePicker, TimeRangePicker, Timeline, Timer, ToastProvider, Toaster, Toggle, ToggleGroup, Tooltip, Tour, Transfer, TrashIcon, Tree, TreeSelect, UnsavedChangesGuard, UploadIcon, WeekPicker, XIcon, YearPicker, confirmUnsavedNavigation, createUrlTableStorage, defineResource, formatDuration, formatTimeValue, initialsOf, parseTimeValue, resourceColumns, resourceDefaults, resourceDetailColumns, resourceFormFields, resourcePermissions, resourceRowKey, resourceSearchKeys, resourceValidator, tintForName, useDataTableQuery, useToast };
|
|
7192
|
+
export { Accordion, Alert, AlertCircleIcon, AmountDisplay, AppShell, AppShellBrand, AppShellRailItem, ArrowRightIcon, AspectRatio, AsyncState, AuditMeta, AuthLayout, Autocomplete, Avatar, AvatarGroup, Badge, BottomTabs, Breadcrumb, Button, Calendar, CalendarIcon, Can, Card, CardBody, CardFooter, CardHeader, Chart, CheckIcon, Checkbox, CheckboxGroup, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClockIcon, Collapse, ColorPicker, CommandPalette, ConfirmDialog, Container, ContextMenu, Countdown, CrudDialogs, CrudPage, CurrencyInput, DEFAULT_COUNTRIES, DataTable, DatePicker, DateRangeFilter, DateRangePicker, DateTimePicker, Descriptions, Divider, Drawer, DrawerBody, DrawerClose, DrawerFooter, DrawerHeader, DrawerTitle, DropdownMenu, DurationDisplay, EmptyState, EntityMeta, ErrorState, EventCalendar, EyeIcon, EyeOffIcon, Field, FileUpload, FiltersBar, Form, Field as FormField, Heading, HoverCard, IconButton, ImageUpload, InfoIcon, InlineCode, Input, InputNumber, JsonEditor, KpiGrid, Label, MarkdownEditor, MenuList, MiniCalendar, MinusIcon, Modal, MonthPicker, MoreHorizontalIcon, MultiSelect, OtpInput, Overlay, PageHeader, Pagination, PasswordInput, PermissionGate, PhoneInput, PlusIcon, Popover, Progress, QRCode, Radio, RadioButton, RadioGroup, Rating, ReferenceSelect, RelativeTime, RequireSession, ResizablePanel, RichTextEditor, ScrollArea, SearchIcon, SearchInput, Select, SettingsIcon, Sidebar, Skeleton, Slider, Sparkline, Spinner, Stack, StarIcon, StatCard, Statistic, Steps, Switch, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, Text, Textarea, TimePicker, TimeRangePicker, Timeline, Timer, ToastProvider, Toaster, Toggle, ToggleGroup, Tooltip, Tour, Transfer, TrashIcon, Tree, TreeSelect, UnsavedChangesGuard, UploadIcon, WeekPicker, XIcon, YearPicker, confirmUnsavedNavigation, createUrlTableStorage, defineResource, formatDuration, formatTimeValue, initialsOf, parseTimeValue, resourceColumns, resourceDefaults, resourceDetailColumns, resourceFormFields, resourcePermissions, resourceRowKey, resourceSearchKeys, resourceValidator, tintForName, useDataTableQuery, useToast };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sia-ui/react-web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "DOM implementation of the SIA UI component contracts.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sia-ui",
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@sia-ui/headless": "0.3.
|
|
49
|
-
"@sia-ui/
|
|
50
|
-
"@sia-ui/
|
|
51
|
-
"@sia-ui/
|
|
48
|
+
"@sia-ui/headless": "0.3.2",
|
|
49
|
+
"@sia-ui/tokens": "0.3.2",
|
|
50
|
+
"@sia-ui/utils": "0.3.2",
|
|
51
|
+
"@sia-ui/react": "0.3.2"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"react": ">=18.2.0",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"tsup": "^8.5.1",
|
|
68
68
|
"typescript": "^5.9.3",
|
|
69
69
|
"vitest": "^4.0.16",
|
|
70
|
-
"@sia-ui/api": "0.3.
|
|
70
|
+
"@sia-ui/api": "0.3.2"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"build": "node scripts/build-theme.mjs --check && tsup",
|