@dev-dga/react 0.6.0 → 0.7.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/index.cjs CHANGED
@@ -82,9 +82,28 @@ __export(src_exports, {
82
82
  DropdownMenuSubContent: () => DropdownMenuSubContent,
83
83
  DropdownMenuSubTrigger: () => DropdownMenuSubTrigger,
84
84
  DropdownMenuTrigger: () => DropdownMenuTrigger,
85
+ EmptyState: () => EmptyState,
86
+ EmptyStateActions: () => EmptyStateActions,
87
+ EmptyStateDescription: () => EmptyStateDescription,
88
+ EmptyStateMedia: () => EmptyStateMedia,
89
+ EmptyStateTitle: () => EmptyStateTitle,
85
90
  FieldMessage: () => FieldMessage,
86
91
  FileUpload: () => FileUpload,
87
92
  Input: () => Input,
93
+ Menubar: () => Menubar,
94
+ MenubarCheckboxItem: () => MenubarCheckboxItem,
95
+ MenubarContent: () => MenubarContent,
96
+ MenubarGroup: () => MenubarGroup,
97
+ MenubarItem: () => MenubarItem,
98
+ MenubarLabel: () => MenubarLabel,
99
+ MenubarMenu: () => MenubarMenu,
100
+ MenubarRadioGroup: () => MenubarRadioGroup,
101
+ MenubarRadioItem: () => MenubarRadioItem,
102
+ MenubarSeparator: () => MenubarSeparator,
103
+ MenubarSub: () => MenubarSub,
104
+ MenubarSubContent: () => MenubarSubContent,
105
+ MenubarSubTrigger: () => MenubarSubTrigger,
106
+ MenubarTrigger: () => MenubarTrigger,
88
107
  Modal: () => Modal,
89
108
  ModalClose: () => ModalClose,
90
109
  ModalContent: () => ModalContent,
@@ -101,15 +120,48 @@ __export(src_exports, {
101
120
  PaginationLink: () => PaginationLink,
102
121
  PaginationNext: () => PaginationNext,
103
122
  PaginationPrevious: () => PaginationPrevious,
123
+ Popover: () => Popover,
124
+ PopoverAnchor: () => PopoverAnchor,
125
+ PopoverClose: () => PopoverClose,
126
+ PopoverContent: () => PopoverContent,
127
+ PopoverTrigger: () => PopoverTrigger,
104
128
  Progress: () => Progress,
105
129
  Radio: () => Radio,
106
130
  RadioGroup: () => RadioGroup,
107
131
  Rating: () => Rating,
132
+ ScrollArea: () => ScrollArea,
108
133
  Select: () => Select,
109
134
  SelectItem: () => SelectItem,
135
+ Sidebar: () => Sidebar,
136
+ SidebarContent: () => SidebarContent,
137
+ SidebarFooter: () => SidebarFooter,
138
+ SidebarGroup: () => SidebarGroup,
139
+ SidebarGroupAction: () => SidebarGroupAction,
140
+ SidebarGroupContent: () => SidebarGroupContent,
141
+ SidebarGroupLabel: () => SidebarGroupLabel,
142
+ SidebarHeader: () => SidebarHeader,
143
+ SidebarInset: () => SidebarInset,
144
+ SidebarMenu: () => SidebarMenu,
145
+ SidebarMenuAction: () => SidebarMenuAction,
146
+ SidebarMenuBadge: () => SidebarMenuBadge,
147
+ SidebarMenuButton: () => SidebarMenuButton,
148
+ SidebarMenuItem: () => SidebarMenuItem,
149
+ SidebarMenuSkeleton: () => SidebarMenuSkeleton,
150
+ SidebarMenuSub: () => SidebarMenuSub,
151
+ SidebarMenuSubButton: () => SidebarMenuSubButton,
152
+ SidebarMenuSubItem: () => SidebarMenuSubItem,
153
+ SidebarProvider: () => SidebarProvider,
154
+ SidebarRail: () => SidebarRail,
155
+ SidebarSeparator: () => SidebarSeparator,
156
+ SidebarTrigger: () => SidebarTrigger,
110
157
  Skeleton: () => Skeleton,
111
158
  Slider: () => Slider,
112
159
  Spinner: () => Spinner,
160
+ Stat: () => Stat,
161
+ StatChange: () => StatChange,
162
+ StatGroup: () => StatGroup,
163
+ StatLabel: () => StatLabel,
164
+ StatValue: () => StatValue,
113
165
  Step: () => Step,
114
166
  StepDescription: () => StepDescription,
115
167
  StepIndicator: () => StepIndicator,
@@ -121,6 +173,13 @@ __export(src_exports, {
121
173
  TabsList: () => TabsList,
122
174
  TabsTrigger: () => TabsTrigger,
123
175
  Textarea: () => Textarea,
176
+ Timeline: () => Timeline,
177
+ TimelineContent: () => TimelineContent,
178
+ TimelineDescription: () => TimelineDescription,
179
+ TimelineItem: () => TimelineItem,
180
+ TimelineMarker: () => TimelineMarker,
181
+ TimelineTime: () => TimelineTime,
182
+ TimelineTitle: () => TimelineTitle,
124
183
  Toaster: () => Toaster,
125
184
  Toggle: () => Toggle,
126
185
  ToggleGroup: () => ToggleGroup,
@@ -147,25 +206,36 @@ __export(src_exports, {
147
206
  dividerVariants: () => dividerVariants,
148
207
  drawerVariants: () => drawerVariants,
149
208
  dropdownMenuVariants: () => dropdownMenuVariants,
209
+ emptyStateVariants: () => emptyStateVariants,
150
210
  inputVariants: () => inputVariants,
211
+ menubarContentVariants: () => menubarContentVariants,
212
+ menubarTriggerVariants: () => menubarTriggerVariants,
151
213
  modalContentVariants: () => modalContentVariants,
152
214
  numberInputVariants: () => numberInputVariants,
153
215
  paginationLinkVariants: () => paginationLinkVariants,
154
216
  paginationVariants: () => paginationVariants,
217
+ popoverContentVariants: () => popoverContentVariants,
155
218
  progressVariants: () => progressVariants,
156
219
  radioGroupVariants: () => radioGroupVariants,
157
220
  radioVariants: () => radioVariants,
158
221
  ratingVariants: () => ratingVariants,
222
+ scrollAreaVariants: () => scrollAreaVariants,
159
223
  selectTriggerVariants: () => selectTriggerVariants,
224
+ sidebarMenuButtonVariants: () => sidebarMenuButtonVariants,
225
+ sidebarMenuSubButtonVariants: () => sidebarMenuSubButtonVariants,
160
226
  skeletonVariants: () => skeletonVariants,
161
227
  sliderVariants: () => sliderVariants,
162
228
  spinnerVariants: () => spinnerVariants,
229
+ statGroupVariants: () => statGroupVariants,
230
+ statVariants: () => statVariants,
163
231
  stepVariants: () => stepVariants,
164
232
  stepsVariants: () => stepsVariants,
165
233
  switchVariants: () => switchVariants,
166
234
  tabsListVariants: () => tabsListVariants,
167
235
  tabsVariants: () => tabsVariants,
168
236
  textareaVariants: () => textareaVariants,
237
+ timelineMarkerVariants: () => timelineMarkerVariants,
238
+ timelineVariants: () => timelineVariants,
169
239
  toast: () => toast,
170
240
  toastStore: () => toastStore,
171
241
  toastVariants: () => toastVariants,
@@ -175,7 +245,9 @@ __export(src_exports, {
175
245
  tooltipContentVariants: () => tooltipContentVariants,
176
246
  useDga: () => useDga,
177
247
  useDir: () => useDir,
178
- useFieldA11y: () => useFieldA11y
248
+ useFieldA11y: () => useFieldA11y,
249
+ useIsMobile: () => useIsMobile,
250
+ useSidebar: () => useSidebar
179
251
  });
180
252
  module.exports = __toCommonJS(src_exports);
181
253
 
@@ -813,6 +885,99 @@ function Upload(props) {
813
885
  }
814
886
  );
815
887
  }
888
+ function Inbox(props) {
889
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
890
+ "svg",
891
+ {
892
+ xmlns: "http://www.w3.org/2000/svg",
893
+ width: "1em",
894
+ height: "1em",
895
+ viewBox: "0 0 24 24",
896
+ fill: "none",
897
+ stroke: "currentColor",
898
+ strokeWidth: "2",
899
+ strokeLinecap: "round",
900
+ strokeLinejoin: "round",
901
+ ...props,
902
+ children: [
903
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M22 12h-6l-2 3h-4l-2-3H2" }),
904
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" })
905
+ ]
906
+ }
907
+ );
908
+ }
909
+ function Search(props) {
910
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
911
+ "svg",
912
+ {
913
+ xmlns: "http://www.w3.org/2000/svg",
914
+ width: "1em",
915
+ height: "1em",
916
+ viewBox: "0 0 24 24",
917
+ fill: "none",
918
+ stroke: "currentColor",
919
+ strokeWidth: "2",
920
+ strokeLinecap: "round",
921
+ strokeLinejoin: "round",
922
+ ...props,
923
+ children: [
924
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "11", cy: "11", r: "8" }),
925
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m21 21-4.3-4.3" })
926
+ ]
927
+ }
928
+ );
929
+ }
930
+ function CaretUp(props) {
931
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
932
+ "svg",
933
+ {
934
+ xmlns: "http://www.w3.org/2000/svg",
935
+ width: "1em",
936
+ height: "1em",
937
+ viewBox: "0 0 24 24",
938
+ fill: "currentColor",
939
+ stroke: "none",
940
+ ...props,
941
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m12 8-6 8h12z" })
942
+ }
943
+ );
944
+ }
945
+ function CaretDown(props) {
946
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
947
+ "svg",
948
+ {
949
+ xmlns: "http://www.w3.org/2000/svg",
950
+ width: "1em",
951
+ height: "1em",
952
+ viewBox: "0 0 24 24",
953
+ fill: "currentColor",
954
+ stroke: "none",
955
+ ...props,
956
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m12 16 6-8H6z" })
957
+ }
958
+ );
959
+ }
960
+ function PanelLeft(props) {
961
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
962
+ "svg",
963
+ {
964
+ xmlns: "http://www.w3.org/2000/svg",
965
+ width: "1em",
966
+ height: "1em",
967
+ viewBox: "0 0 24 24",
968
+ fill: "none",
969
+ stroke: "currentColor",
970
+ strokeWidth: "2",
971
+ strokeLinecap: "round",
972
+ strokeLinejoin: "round",
973
+ ...props,
974
+ children: [
975
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
976
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M9 3v18" })
977
+ ]
978
+ }
979
+ );
980
+ }
816
981
 
817
982
  // src/components/Checkbox/Checkbox.tsx
818
983
  var import_jsx_runtime7 = require("react/jsx-runtime");
@@ -4170,78 +4335,1185 @@ function DescriptionDetails({ className, ...props }) {
4170
4335
  );
4171
4336
  }
4172
4337
 
4173
- // src/providers/DgaProvider.tsx
4338
+ // src/components/EmptyState/EmptyState.tsx
4174
4339
  var import_react21 = require("react");
4175
4340
  var import_radix_ui23 = require("radix-ui");
4176
- var import_tokens = require("@dev-dga/tokens");
4341
+ var import_class_variance_authority33 = require("class-variance-authority");
4177
4342
  var import_jsx_runtime36 = require("react/jsx-runtime");
4178
- function DgaProvider({
4179
- dir = "ltr",
4180
- locale,
4181
- mode = "light",
4182
- theme,
4183
- as: Component = "div",
4343
+ var emptyStateVariants = (0, import_class_variance_authority33.cva)("ddga-empty-state", {
4344
+ variants: {
4345
+ variant: {
4346
+ default: "ddga-empty-state--default",
4347
+ search: "ddga-empty-state--search",
4348
+ error: "ddga-empty-state--error",
4349
+ success: "ddga-empty-state--success"
4350
+ },
4351
+ size: {
4352
+ sm: "ddga-empty-state--sm",
4353
+ md: "ddga-empty-state--md",
4354
+ lg: "ddga-empty-state--lg"
4355
+ }
4356
+ },
4357
+ defaultVariants: {
4358
+ variant: "default",
4359
+ size: "md"
4360
+ }
4361
+ });
4362
+ var DEFAULT_ICONS3 = {
4363
+ default: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Inbox, { "aria-hidden": "true" }),
4364
+ search: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Search, { "aria-hidden": "true" }),
4365
+ error: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(AlertCircle, { "aria-hidden": "true" }),
4366
+ success: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Check, { "aria-hidden": "true" })
4367
+ };
4368
+ function EmptyState({
4369
+ variant,
4370
+ size,
4371
+ icon,
4372
+ title,
4373
+ description,
4374
+ action,
4375
+ secondaryAction,
4184
4376
  className,
4185
- style: consumerStyle,
4186
- children
4377
+ children,
4378
+ ...props
4187
4379
  }) {
4188
- const parentCtx = (0, import_react21.useContext)(DgaContext);
4189
- const isNested = parentCtx !== null;
4190
- const [rootEl, setRootEl] = (0, import_react21.useState)(null);
4191
- const portalRef = (0, import_react21.useRef)(null);
4192
- const [portalEl, setPortalEl] = (0, import_react21.useState)(null);
4193
- const resolvedLocale = locale ?? (dir === "rtl" ? "ar" : "en");
4194
- const themeVars = (0, import_react21.useMemo)(() => theme ? (0, import_tokens.buildTheme)(theme) : null, [theme]);
4195
- (0, import_react21.useEffect)(() => {
4196
- if (typeof document === "undefined") return;
4197
- const el = document.createElement("div");
4198
- el.setAttribute("data-slot", "dga-portal");
4199
- el.style.position = "relative";
4200
- el.style.zIndex = "50";
4201
- document.body.appendChild(el);
4202
- portalRef.current = el;
4203
- setPortalEl(el);
4204
- return () => {
4205
- el.remove();
4206
- portalRef.current = null;
4207
- setPortalEl(null);
4208
- };
4209
- }, []);
4210
- (0, import_react21.useEffect)(() => {
4211
- const el = portalRef.current;
4212
- if (!el) return;
4213
- el.setAttribute("data-theme", mode);
4214
- el.setAttribute("dir", dir);
4215
- el.style.colorScheme = mode;
4216
- if (themeVars) {
4217
- for (const [k, v] of Object.entries(themeVars)) {
4218
- el.style.setProperty(k, String(v));
4219
- }
4380
+ const resolvedIcon = icon === false ? null : icon !== void 0 ? icon : DEFAULT_ICONS3[variant ?? "default"];
4381
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4382
+ "div",
4383
+ {
4384
+ "data-slot": "empty-state",
4385
+ "data-variant": variant ?? "default",
4386
+ "data-size": size ?? "md",
4387
+ className: cn(emptyStateVariants({ variant, size }), className),
4388
+ ...props,
4389
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_jsx_runtime36.Fragment, { children: [
4390
+ resolvedIcon ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(EmptyStateMedia, { children: resolvedIcon }) : null,
4391
+ title ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(EmptyStateTitle, { children: title }) : null,
4392
+ description ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(EmptyStateDescription, { children: description }) : null,
4393
+ action || secondaryAction ? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(EmptyStateActions, { children: [
4394
+ action,
4395
+ secondaryAction
4396
+ ] }) : null
4397
+ ] })
4220
4398
  }
4221
- }, [mode, dir, themeVars, portalEl]);
4222
- const ctxValue = (0, import_react21.useMemo)(
4223
- () => ({ dir, locale: resolvedLocale, mode, rootEl, portalEl }),
4224
- [dir, resolvedLocale, mode, rootEl, portalEl]
4225
4399
  );
4226
- const inner = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui23.Direction.Provider, { dir, children });
4227
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DgaContext.Provider, { value: ctxValue, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4228
- Component,
4400
+ }
4401
+ function EmptyStateMedia({ className, ...props }) {
4402
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4403
+ "div",
4229
4404
  {
4230
- ref: setRootEl,
4231
- dir,
4232
- lang: resolvedLocale,
4233
- "data-slot": "dga-root",
4234
- "data-theme": mode,
4235
- className,
4236
- style: { colorScheme: mode, ...themeVars ?? {}, ...consumerStyle },
4237
- children: isNested ? inner : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui23.Tooltip.Provider, { delayDuration: 300, skipDelayDuration: 100, children: inner })
4405
+ "data-slot": "empty-state-media",
4406
+ "aria-hidden": "true",
4407
+ className: cn("ddga-empty-state__media", className),
4408
+ ...props
4238
4409
  }
4239
- ) });
4410
+ );
4411
+ }
4412
+ function EmptyStateTitle({ asChild, className, ...props }) {
4413
+ const Comp = asChild ? import_radix_ui23.Slot.Slot : "h3";
4414
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4415
+ Comp,
4416
+ {
4417
+ "data-slot": "empty-state-title",
4418
+ className: cn("ddga-empty-state__title", className),
4419
+ ...props
4420
+ }
4421
+ );
4422
+ }
4423
+ function EmptyStateDescription({ asChild, className, ...props }) {
4424
+ const Comp = asChild ? import_radix_ui23.Slot.Slot : "p";
4425
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4426
+ Comp,
4427
+ {
4428
+ "data-slot": "empty-state-description",
4429
+ className: cn("ddga-empty-state__description", className),
4430
+ ...props
4431
+ }
4432
+ );
4433
+ }
4434
+ function EmptyStateActions({ asChild, className, ...props }) {
4435
+ const Comp = asChild ? import_radix_ui23.Slot.Slot : "div";
4436
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4437
+ Comp,
4438
+ {
4439
+ "data-slot": "empty-state-actions",
4440
+ className: cn("ddga-empty-state__actions", className),
4441
+ ...props
4442
+ }
4443
+ );
4240
4444
  }
4241
4445
 
4242
- // src/hooks/useDir.ts
4243
- function useDir() {
4244
- return useDga().dir;
4446
+ // src/components/Stat/Stat.tsx
4447
+ var import_react22 = require("react");
4448
+ var import_class_variance_authority34 = require("class-variance-authority");
4449
+ var import_jsx_runtime37 = require("react/jsx-runtime");
4450
+ var statVariants = (0, import_class_variance_authority34.cva)("ddga-stat", {
4451
+ variants: {
4452
+ variant: {
4453
+ flat: "ddga-stat--flat",
4454
+ elevated: "ddga-stat--elevated",
4455
+ accent: "ddga-stat--accent"
4456
+ },
4457
+ size: {
4458
+ sm: "ddga-stat--sm",
4459
+ md: "ddga-stat--md",
4460
+ lg: "ddga-stat--lg"
4461
+ }
4462
+ },
4463
+ defaultVariants: {
4464
+ variant: "flat",
4465
+ size: "md"
4466
+ }
4467
+ });
4468
+ var TREND_ICONS = {
4469
+ up: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CaretUp, { "aria-hidden": "true" }),
4470
+ down: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CaretDown, { "aria-hidden": "true" }),
4471
+ flat: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Minus, { "aria-hidden": "true" })
4472
+ };
4473
+ var TREND_SENTIMENT = {
4474
+ up: "positive",
4475
+ down: "negative",
4476
+ flat: "neutral"
4477
+ };
4478
+ function resolveSentiment(trend, sentiment) {
4479
+ if (sentiment) return sentiment;
4480
+ if (trend) return TREND_SENTIMENT[trend];
4481
+ return void 0;
4482
+ }
4483
+ function Stat({
4484
+ variant,
4485
+ size,
4486
+ label,
4487
+ value,
4488
+ change,
4489
+ changeLabel,
4490
+ trend,
4491
+ sentiment,
4492
+ icon,
4493
+ className,
4494
+ children,
4495
+ ...props
4496
+ }) {
4497
+ const resolvedSentiment = resolveSentiment(trend, sentiment);
4498
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
4499
+ "div",
4500
+ {
4501
+ "data-slot": "stat",
4502
+ "data-variant": variant ?? "flat",
4503
+ "data-trend": trend,
4504
+ "data-sentiment": resolvedSentiment,
4505
+ className: cn(statVariants({ variant, size }), className),
4506
+ ...props,
4507
+ children: [
4508
+ label || icon ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "ddga-stat__label-row", children: [
4509
+ label ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(StatLabel, { children: label }) : null,
4510
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ddga-stat__icon", "aria-hidden": "true", children: icon }) : null
4511
+ ] }) : null,
4512
+ value ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(StatValue, { children: value }) : null,
4513
+ change || changeLabel ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "ddga-stat__change-row", children: [
4514
+ change ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(StatChange, { trend, sentiment, children: change }) : null,
4515
+ changeLabel ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ddga-stat__change-label", children: changeLabel }) : null
4516
+ ] }) : null,
4517
+ children
4518
+ ]
4519
+ }
4520
+ );
4521
+ }
4522
+ function StatLabel({ className, ...props }) {
4523
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { "data-slot": "stat-label", className: cn("ddga-stat__label", className), ...props });
4524
+ }
4525
+ function StatValue({ className, ...props }) {
4526
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { "data-slot": "stat-value", className: cn("ddga-stat__value", className), ...props });
4527
+ }
4528
+ function StatChange({ trend, sentiment, className, children, ...props }) {
4529
+ const resolvedSentiment = resolveSentiment(trend, sentiment);
4530
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
4531
+ "div",
4532
+ {
4533
+ "data-slot": "stat-change",
4534
+ "data-trend": trend,
4535
+ "data-sentiment": resolvedSentiment,
4536
+ className: cn(
4537
+ "ddga-stat__change",
4538
+ resolvedSentiment ? `ddga-stat__change--${resolvedSentiment}` : null,
4539
+ className
4540
+ ),
4541
+ ...props,
4542
+ children: [
4543
+ trend ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ddga-stat__change-icon", children: TREND_ICONS[trend] }) : null,
4544
+ children
4545
+ ]
4546
+ }
4547
+ );
4548
+ }
4549
+
4550
+ // src/components/Stat/StatGroup.tsx
4551
+ var import_class_variance_authority35 = require("class-variance-authority");
4552
+ var import_jsx_runtime38 = require("react/jsx-runtime");
4553
+ var statGroupVariants = (0, import_class_variance_authority35.cva)("ddga-stat-group", {
4554
+ variants: {
4555
+ orientation: {
4556
+ horizontal: "ddga-stat-group--horizontal",
4557
+ vertical: "ddga-stat-group--vertical"
4558
+ },
4559
+ gap: {
4560
+ sm: "ddga-stat-group--gap-sm",
4561
+ md: "ddga-stat-group--gap-md",
4562
+ lg: "ddga-stat-group--gap-lg"
4563
+ }
4564
+ },
4565
+ defaultVariants: {
4566
+ orientation: "horizontal",
4567
+ gap: "md"
4568
+ }
4569
+ });
4570
+ function StatGroup({ orientation, gap, columns, className, style, ...props }) {
4571
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4572
+ "div",
4573
+ {
4574
+ "data-slot": "stat-group",
4575
+ className: cn(
4576
+ statGroupVariants({ orientation, gap }),
4577
+ columns != null && "ddga-stat-group--cols",
4578
+ className
4579
+ ),
4580
+ style: columns != null ? { "--ddga-stat-group-columns": columns, ...style } : style,
4581
+ ...props
4582
+ }
4583
+ );
4584
+ }
4585
+
4586
+ // src/components/Popover/Popover.tsx
4587
+ var import_react23 = require("react");
4588
+ var import_radix_ui24 = require("radix-ui");
4589
+ var import_class_variance_authority36 = require("class-variance-authority");
4590
+ var import_jsx_runtime39 = require("react/jsx-runtime");
4591
+ var popoverContentVariants = (0, import_class_variance_authority36.cva)("ddga-popover", {
4592
+ variants: {
4593
+ size: {
4594
+ sm: "ddga-popover--sm",
4595
+ md: "ddga-popover--md"
4596
+ }
4597
+ },
4598
+ defaultVariants: {
4599
+ size: "md"
4600
+ }
4601
+ });
4602
+ function Popover(props) {
4603
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_radix_ui24.Popover.Root, { ...props });
4604
+ }
4605
+ function PopoverTrigger({ className, ...props }) {
4606
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_radix_ui24.Popover.Trigger, { "data-slot": "popover-trigger", className, ...props });
4607
+ }
4608
+ function PopoverAnchor(props) {
4609
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_radix_ui24.Popover.Anchor, { "data-slot": "popover-anchor", ...props });
4610
+ }
4611
+ function PopoverContent({
4612
+ size,
4613
+ arrow = false,
4614
+ sideOffset = 6,
4615
+ className,
4616
+ children,
4617
+ ...props
4618
+ }) {
4619
+ if (process.env.NODE_ENV === "development" && !props["aria-label"] && !props["aria-labelledby"]) {
4620
+ console.warn(
4621
+ '[@dev-dga/react] PopoverContent renders role="dialog" and should have an `aria-label` or `aria-labelledby` so the panel has an accessible name.'
4622
+ );
4623
+ }
4624
+ const ctx = (0, import_react23.useContext)(DgaContext);
4625
+ const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? void 0;
4626
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_radix_ui24.Popover.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
4627
+ import_radix_ui24.Popover.Content,
4628
+ {
4629
+ "data-slot": "popover-content",
4630
+ sideOffset,
4631
+ className: cn(popoverContentVariants({ size }), className),
4632
+ ...props,
4633
+ children: [
4634
+ children,
4635
+ arrow ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_radix_ui24.Popover.Arrow, { className: "ddga-popover__arrow", width: 16, height: 8 }) : null
4636
+ ]
4637
+ }
4638
+ ) });
4639
+ }
4640
+ function PopoverClose({
4641
+ className,
4642
+ children,
4643
+ closeLabel = "Close",
4644
+ asChild,
4645
+ ...props
4646
+ }) {
4647
+ const hasRenderableChildren = children != null && children !== false;
4648
+ if (asChild || hasRenderableChildren) {
4649
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
4650
+ import_radix_ui24.Popover.Close,
4651
+ {
4652
+ "data-slot": "popover-close",
4653
+ asChild,
4654
+ className,
4655
+ ...props,
4656
+ children
4657
+ }
4658
+ );
4659
+ }
4660
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
4661
+ import_radix_ui24.Popover.Close,
4662
+ {
4663
+ "data-slot": "popover-close",
4664
+ "aria-label": closeLabel,
4665
+ className: cn("ddga-popover__close", className),
4666
+ ...props,
4667
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Close, { "aria-hidden": "true" })
4668
+ }
4669
+ );
4670
+ }
4671
+
4672
+ // src/components/Sidebar/Sidebar.tsx
4673
+ var import_react26 = require("react");
4674
+ var import_radix_ui25 = require("radix-ui");
4675
+
4676
+ // src/components/Sidebar/SidebarContext.ts
4677
+ var import_react24 = require("react");
4678
+ var SidebarContext = (0, import_react24.createContext)(null);
4679
+ function useSidebar() {
4680
+ const ctx = (0, import_react24.useContext)(SidebarContext);
4681
+ if (!ctx) {
4682
+ throw new Error("useSidebar must be used within a <SidebarProvider>");
4683
+ }
4684
+ return ctx;
4685
+ }
4686
+
4687
+ // src/components/Sidebar/useIsMobile.ts
4688
+ var import_react25 = require("react");
4689
+ function useIsMobile(breakpoint = 768) {
4690
+ const [isMobile, setIsMobile] = (0, import_react25.useState)(false);
4691
+ (0, import_react25.useEffect)(() => {
4692
+ const mql = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
4693
+ const onChange = () => setIsMobile(mql.matches);
4694
+ onChange();
4695
+ mql.addEventListener("change", onChange);
4696
+ return () => mql.removeEventListener("change", onChange);
4697
+ }, [breakpoint]);
4698
+ return isMobile;
4699
+ }
4700
+
4701
+ // src/components/Sidebar/Sidebar.tsx
4702
+ var import_jsx_runtime40 = require("react/jsx-runtime");
4703
+ function SidebarProvider({
4704
+ defaultOpen = true,
4705
+ open: openProp,
4706
+ onOpenChange,
4707
+ mobileBreakpoint = 768,
4708
+ keyboardShortcut = true,
4709
+ className,
4710
+ style,
4711
+ children,
4712
+ ...props
4713
+ }) {
4714
+ const isMobile = useIsMobile(mobileBreakpoint);
4715
+ const [openMobile, setOpenMobile] = (0, import_react26.useState)(false);
4716
+ const isControlled = openProp !== void 0;
4717
+ const [openInternal, setOpenInternal] = (0, import_react26.useState)(defaultOpen);
4718
+ const open = isControlled ? openProp : openInternal;
4719
+ const setOpen = (0, import_react26.useCallback)(
4720
+ (value2) => {
4721
+ if (!isControlled) setOpenInternal(value2);
4722
+ onOpenChange?.(value2);
4723
+ },
4724
+ [isControlled, onOpenChange]
4725
+ );
4726
+ const toggleSidebar = (0, import_react26.useCallback)(() => {
4727
+ if (isMobile) {
4728
+ setOpenMobile((v) => !v);
4729
+ return;
4730
+ }
4731
+ if (isControlled) {
4732
+ onOpenChange?.(!open);
4733
+ } else {
4734
+ setOpenInternal((v) => !v);
4735
+ }
4736
+ }, [isMobile, isControlled, onOpenChange, open]);
4737
+ (0, import_react26.useEffect)(() => {
4738
+ if (!keyboardShortcut) return;
4739
+ const onKeyDown = (e) => {
4740
+ if (e.key.toLowerCase() === "b" && (e.metaKey || e.ctrlKey)) {
4741
+ e.preventDefault();
4742
+ toggleSidebar();
4743
+ }
4744
+ };
4745
+ window.addEventListener("keydown", onKeyDown);
4746
+ return () => window.removeEventListener("keydown", onKeyDown);
4747
+ }, [keyboardShortcut, toggleSidebar]);
4748
+ const state = open ? "expanded" : "collapsed";
4749
+ const value = (0, import_react26.useMemo)(
4750
+ () => ({ state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar }),
4751
+ [state, open, setOpen, openMobile, isMobile, toggleSidebar]
4752
+ );
4753
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SidebarContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4754
+ "div",
4755
+ {
4756
+ "data-slot": "sidebar-wrapper",
4757
+ className: cn("ddga-sidebar-wrapper", className),
4758
+ style,
4759
+ ...props,
4760
+ children
4761
+ }
4762
+ ) });
4763
+ }
4764
+ function Sidebar({
4765
+ variant = "sidebar",
4766
+ collapsible = "icon",
4767
+ side = "start",
4768
+ className,
4769
+ children,
4770
+ "aria-label": ariaLabel = "Sidebar",
4771
+ ...props
4772
+ }) {
4773
+ const { isMobile, openMobile, setOpenMobile, state } = useSidebar();
4774
+ if (isMobile) {
4775
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Drawer, { open: openMobile, onOpenChange: setOpenMobile, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4776
+ DrawerContent,
4777
+ {
4778
+ side,
4779
+ size: "sm",
4780
+ "aria-label": ariaLabel,
4781
+ "data-mobile": "true",
4782
+ "data-variant": variant,
4783
+ "data-side": side,
4784
+ className: cn("ddga-sidebar", "ddga-sidebar--mobile", className),
4785
+ children
4786
+ }
4787
+ ) });
4788
+ }
4789
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4790
+ "aside",
4791
+ {
4792
+ "data-slot": "sidebar",
4793
+ "aria-label": ariaLabel,
4794
+ "data-state": state,
4795
+ "data-collapsible": collapsible,
4796
+ "data-variant": variant,
4797
+ "data-side": side,
4798
+ className: cn("ddga-sidebar", className),
4799
+ ...props,
4800
+ children
4801
+ }
4802
+ );
4803
+ }
4804
+ function SidebarTrigger({
4805
+ asChild,
4806
+ className,
4807
+ onClick,
4808
+ children,
4809
+ "aria-label": ariaLabel = "Toggle sidebar",
4810
+ ...props
4811
+ }) {
4812
+ const { toggleSidebar, open, openMobile, isMobile } = useSidebar();
4813
+ const Comp = asChild ? import_radix_ui25.Slot.Slot : "button";
4814
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4815
+ Comp,
4816
+ {
4817
+ type: asChild ? void 0 : "button",
4818
+ "data-slot": "sidebar-trigger",
4819
+ "aria-label": asChild ? void 0 : ariaLabel,
4820
+ "aria-haspopup": isMobile ? "dialog" : void 0,
4821
+ "aria-expanded": isMobile ? openMobile : open,
4822
+ className: cn("ddga-sidebar__trigger", className),
4823
+ onClick: (e) => {
4824
+ onClick?.(e);
4825
+ toggleSidebar();
4826
+ },
4827
+ ...props,
4828
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PanelLeft, { "aria-hidden": "true" })
4829
+ }
4830
+ );
4831
+ }
4832
+ function SidebarRail({
4833
+ className,
4834
+ "aria-label": ariaLabel = "Toggle sidebar",
4835
+ ...props
4836
+ }) {
4837
+ const { toggleSidebar } = useSidebar();
4838
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4839
+ "button",
4840
+ {
4841
+ type: "button",
4842
+ "data-slot": "sidebar-rail",
4843
+ "aria-label": ariaLabel,
4844
+ title: ariaLabel,
4845
+ tabIndex: -1,
4846
+ className: cn("ddga-sidebar__rail", className),
4847
+ onClick: toggleSidebar,
4848
+ ...props
4849
+ }
4850
+ );
4851
+ }
4852
+ function SidebarInset({ asChild, className, ...props }) {
4853
+ const Comp = asChild ? import_radix_ui25.Slot.Slot : "main";
4854
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Comp, { "data-slot": "sidebar-inset", className: cn("ddga-sidebar-inset", className), ...props });
4855
+ }
4856
+ function SidebarHeader({ asChild, className, ...props }) {
4857
+ const Comp = asChild ? import_radix_ui25.Slot.Slot : "div";
4858
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Comp, { "data-slot": "sidebar-header", className: cn("ddga-sidebar__header", className), ...props });
4859
+ }
4860
+ function SidebarContent({ asChild, className, ...props }) {
4861
+ const Comp = asChild ? import_radix_ui25.Slot.Slot : "div";
4862
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4863
+ Comp,
4864
+ {
4865
+ "data-slot": "sidebar-content",
4866
+ className: cn("ddga-sidebar__content", className),
4867
+ ...props
4868
+ }
4869
+ );
4870
+ }
4871
+ function SidebarFooter({ asChild, className, ...props }) {
4872
+ const Comp = asChild ? import_radix_ui25.Slot.Slot : "div";
4873
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Comp, { "data-slot": "sidebar-footer", className: cn("ddga-sidebar__footer", className), ...props });
4874
+ }
4875
+ function SidebarSeparator({ className, ...props }) {
4876
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4877
+ "hr",
4878
+ {
4879
+ "data-slot": "sidebar-separator",
4880
+ className: cn("ddga-sidebar__separator", className),
4881
+ ...props
4882
+ }
4883
+ );
4884
+ }
4885
+
4886
+ // src/components/Sidebar/SidebarGroup.tsx
4887
+ var import_radix_ui26 = require("radix-ui");
4888
+ var import_jsx_runtime41 = require("react/jsx-runtime");
4889
+ function SidebarGroup({ asChild, className, ...props }) {
4890
+ const Comp = asChild ? import_radix_ui26.Slot.Slot : "div";
4891
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4892
+ Comp,
4893
+ {
4894
+ "data-slot": "sidebar-group",
4895
+ role: "group",
4896
+ className: cn("ddga-sidebar__group", className),
4897
+ ...props
4898
+ }
4899
+ );
4900
+ }
4901
+ function SidebarGroupLabel({ asChild, className, ...props }) {
4902
+ const Comp = asChild ? import_radix_ui26.Slot.Slot : "div";
4903
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4904
+ Comp,
4905
+ {
4906
+ "data-slot": "sidebar-group-label",
4907
+ className: cn("ddga-sidebar__group-label", className),
4908
+ ...props
4909
+ }
4910
+ );
4911
+ }
4912
+ function SidebarGroupAction({ asChild, className, ...props }) {
4913
+ const Comp = asChild ? import_radix_ui26.Slot.Slot : "button";
4914
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4915
+ Comp,
4916
+ {
4917
+ type: asChild ? void 0 : "button",
4918
+ "data-slot": "sidebar-group-action",
4919
+ className: cn("ddga-sidebar__group-action", className),
4920
+ ...props
4921
+ }
4922
+ );
4923
+ }
4924
+ function SidebarGroupContent({ asChild, className, ...props }) {
4925
+ const Comp = asChild ? import_radix_ui26.Slot.Slot : "div";
4926
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4927
+ Comp,
4928
+ {
4929
+ "data-slot": "sidebar-group-content",
4930
+ className: cn("ddga-sidebar__group-content", className),
4931
+ ...props
4932
+ }
4933
+ );
4934
+ }
4935
+
4936
+ // src/components/Sidebar/SidebarMenu.tsx
4937
+ var import_radix_ui27 = require("radix-ui");
4938
+ var import_class_variance_authority37 = require("class-variance-authority");
4939
+
4940
+ // src/hooks/useDir.ts
4941
+ function useDir() {
4942
+ return useDga().dir;
4943
+ }
4944
+
4945
+ // src/components/Sidebar/SidebarMenu.tsx
4946
+ var import_jsx_runtime42 = require("react/jsx-runtime");
4947
+ function SidebarMenu({ className, ...props }) {
4948
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("ul", { "data-slot": "sidebar-menu", className: cn("ddga-sidebar__menu", className), ...props });
4949
+ }
4950
+ function SidebarMenuItem({ className, ...props }) {
4951
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
4952
+ "li",
4953
+ {
4954
+ "data-slot": "sidebar-menu-item",
4955
+ className: cn("ddga-sidebar__menu-item", className),
4956
+ ...props
4957
+ }
4958
+ );
4959
+ }
4960
+ var sidebarMenuButtonVariants = (0, import_class_variance_authority37.cva)("ddga-sidebar__menu-button", {
4961
+ variants: {
4962
+ size: {
4963
+ sm: "ddga-sidebar__menu-button--sm",
4964
+ md: "ddga-sidebar__menu-button--md",
4965
+ lg: "ddga-sidebar__menu-button--lg"
4966
+ }
4967
+ },
4968
+ defaultVariants: { size: "md" }
4969
+ });
4970
+ function SidebarMenuButton({
4971
+ asChild,
4972
+ isActive,
4973
+ size,
4974
+ tooltip,
4975
+ className,
4976
+ ...props
4977
+ }) {
4978
+ const { state, isMobile } = useSidebar();
4979
+ const dir = useDir();
4980
+ const Comp = asChild ? import_radix_ui27.Slot.Slot : "button";
4981
+ const button = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
4982
+ Comp,
4983
+ {
4984
+ type: asChild ? void 0 : "button",
4985
+ "data-slot": "sidebar-menu-button",
4986
+ "data-active": isActive || void 0,
4987
+ "data-size": size ?? "md",
4988
+ "aria-current": isActive ? "page" : void 0,
4989
+ className: cn(sidebarMenuButtonVariants({ size }), className),
4990
+ ...props
4991
+ }
4992
+ );
4993
+ if (!tooltip || state !== "collapsed" || isMobile) {
4994
+ return button;
4995
+ }
4996
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Tooltip, { children: [
4997
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { "data-slot": "tooltip-trigger", style: { display: "contents" }, children: button }) }),
4998
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipContent, { side: dir === "rtl" ? "left" : "right", children: tooltip })
4999
+ ] });
5000
+ }
5001
+ function SidebarMenuAction({ asChild, showOnHover, className, ...props }) {
5002
+ const Comp = asChild ? import_radix_ui27.Slot.Slot : "button";
5003
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5004
+ Comp,
5005
+ {
5006
+ type: asChild ? void 0 : "button",
5007
+ "data-slot": "sidebar-menu-action",
5008
+ "data-show-on-hover": showOnHover || void 0,
5009
+ className: cn("ddga-sidebar__menu-action", className),
5010
+ ...props
5011
+ }
5012
+ );
5013
+ }
5014
+ function SidebarMenuBadge({ className, ...props }) {
5015
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5016
+ "span",
5017
+ {
5018
+ "data-slot": "sidebar-menu-badge",
5019
+ className: cn("ddga-sidebar__menu-badge", className),
5020
+ ...props
5021
+ }
5022
+ );
5023
+ }
5024
+ function SidebarMenuSkeleton({ showIcon, className, ...props }) {
5025
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
5026
+ "div",
5027
+ {
5028
+ "data-slot": "sidebar-menu-skeleton",
5029
+ className: cn("ddga-sidebar__menu-skeleton", className),
5030
+ ...props,
5031
+ children: [
5032
+ showIcon ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Skeleton, { shape: "circle", width: "1rem", height: "1rem" }) : null,
5033
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Skeleton, { shape: "text", className: "ddga-sidebar__menu-skeleton-text" })
5034
+ ]
5035
+ }
5036
+ );
5037
+ }
5038
+ function SidebarMenuSub({ className, ...props }) {
5039
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5040
+ "ul",
5041
+ {
5042
+ "data-slot": "sidebar-menu-sub",
5043
+ className: cn("ddga-sidebar__menu-sub", className),
5044
+ ...props
5045
+ }
5046
+ );
5047
+ }
5048
+ function SidebarMenuSubItem({ className, ...props }) {
5049
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5050
+ "li",
5051
+ {
5052
+ "data-slot": "sidebar-menu-sub-item",
5053
+ className: cn("ddga-sidebar__menu-sub-item", className),
5054
+ ...props
5055
+ }
5056
+ );
5057
+ }
5058
+ var sidebarMenuSubButtonVariants = (0, import_class_variance_authority37.cva)("ddga-sidebar__menu-sub-button", {
5059
+ variants: {
5060
+ size: {
5061
+ sm: "ddga-sidebar__menu-sub-button--sm",
5062
+ md: "ddga-sidebar__menu-sub-button--md"
5063
+ }
5064
+ },
5065
+ defaultVariants: { size: "md" }
5066
+ });
5067
+ function SidebarMenuSubButton({
5068
+ asChild,
5069
+ isActive,
5070
+ size,
5071
+ className,
5072
+ ...props
5073
+ }) {
5074
+ const Comp = asChild ? import_radix_ui27.Slot.Slot : "a";
5075
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5076
+ Comp,
5077
+ {
5078
+ "data-slot": "sidebar-menu-sub-button",
5079
+ "data-active": isActive || void 0,
5080
+ "data-size": size ?? "md",
5081
+ "aria-current": isActive ? "page" : void 0,
5082
+ className: cn(sidebarMenuSubButtonVariants({ size }), className),
5083
+ ...props
5084
+ }
5085
+ );
5086
+ }
5087
+
5088
+ // src/components/ScrollArea/ScrollArea.tsx
5089
+ var import_radix_ui28 = require("radix-ui");
5090
+ var import_class_variance_authority38 = require("class-variance-authority");
5091
+ var import_jsx_runtime43 = require("react/jsx-runtime");
5092
+ var scrollAreaVariants = (0, import_class_variance_authority38.cva)("ddga-scroll-area", {
5093
+ variants: {
5094
+ orientation: {
5095
+ vertical: "ddga-scroll-area--vertical",
5096
+ horizontal: "ddga-scroll-area--horizontal",
5097
+ both: "ddga-scroll-area--both"
5098
+ }
5099
+ },
5100
+ defaultVariants: {
5101
+ orientation: "vertical"
5102
+ }
5103
+ });
5104
+ function warnMissingLabel(ariaLabel, ariaLabelledby) {
5105
+ if (process.env.NODE_ENV === "production") return;
5106
+ if (ariaLabel || ariaLabelledby) return;
5107
+ console.warn(
5108
+ "[dga/ScrollArea] <ScrollArea> has no accessible name. The scroll viewport is keyboard-focusable; pass `aria-label` or `aria-labelledby` so screen-reader users know what region they are scrolling. If the content is itself focusable (e.g. a list of links) and you do not want a labelled region, pass `viewportProps={{ tabIndex: -1 }}`."
5109
+ );
5110
+ }
5111
+ function ScrollArea({
5112
+ className,
5113
+ orientation = "vertical",
5114
+ type = "hover",
5115
+ scrollHideDelay = 600,
5116
+ viewportRef,
5117
+ viewportProps,
5118
+ children,
5119
+ "aria-label": ariaLabel,
5120
+ "aria-labelledby": ariaLabelledby,
5121
+ ...props
5122
+ }) {
5123
+ warnMissingLabel(ariaLabel, ariaLabelledby);
5124
+ const hasLabel = Boolean(ariaLabel || ariaLabelledby);
5125
+ const showVertical = orientation === "vertical" || orientation === "both";
5126
+ const showHorizontal = orientation === "horizontal" || orientation === "both";
5127
+ const { className: viewportClassName, ...restViewportProps } = viewportProps ?? {};
5128
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
5129
+ import_radix_ui28.ScrollArea.Root,
5130
+ {
5131
+ "data-slot": "scroll-area",
5132
+ type,
5133
+ scrollHideDelay,
5134
+ className: cn(scrollAreaVariants({ orientation }), className),
5135
+ ...props,
5136
+ children: [
5137
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
5138
+ import_radix_ui28.ScrollArea.Viewport,
5139
+ {
5140
+ "data-slot": "scroll-area-viewport",
5141
+ className: cn("ddga-scroll-area__viewport", viewportClassName),
5142
+ ref: viewportRef,
5143
+ tabIndex: 0,
5144
+ role: hasLabel ? "region" : void 0,
5145
+ "aria-label": ariaLabel,
5146
+ "aria-labelledby": ariaLabelledby,
5147
+ ...restViewportProps,
5148
+ children
5149
+ }
5150
+ ),
5151
+ showVertical ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
5152
+ import_radix_ui28.ScrollArea.Scrollbar,
5153
+ {
5154
+ "data-slot": "scroll-area-scrollbar",
5155
+ orientation: "vertical",
5156
+ className: "ddga-scroll-area__scrollbar",
5157
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_radix_ui28.ScrollArea.Thumb, { className: "ddga-scroll-area__thumb" })
5158
+ }
5159
+ ) : null,
5160
+ showHorizontal ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
5161
+ import_radix_ui28.ScrollArea.Scrollbar,
5162
+ {
5163
+ "data-slot": "scroll-area-scrollbar",
5164
+ orientation: "horizontal",
5165
+ className: "ddga-scroll-area__scrollbar",
5166
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_radix_ui28.ScrollArea.Thumb, { className: "ddga-scroll-area__thumb" })
5167
+ }
5168
+ ) : null,
5169
+ orientation === "both" ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_radix_ui28.ScrollArea.Corner, { className: "ddga-scroll-area__corner" }) : null
5170
+ ]
5171
+ }
5172
+ );
5173
+ }
5174
+
5175
+ // src/components/Menubar/Menubar.tsx
5176
+ var import_react27 = require("react");
5177
+ var import_radix_ui29 = require("radix-ui");
5178
+ var import_class_variance_authority39 = require("class-variance-authority");
5179
+ var import_jsx_runtime44 = require("react/jsx-runtime");
5180
+ var menubarContentVariants = (0, import_class_variance_authority39.cva)("ddga-menubar-menu", {
5181
+ variants: {
5182
+ size: {
5183
+ sm: "ddga-menubar-menu--sm",
5184
+ md: "ddga-menubar-menu--md"
5185
+ }
5186
+ },
5187
+ defaultVariants: {
5188
+ size: "md"
5189
+ }
5190
+ });
5191
+ var menubarTriggerVariants = (0, import_class_variance_authority39.cva)("ddga-menubar__trigger", {
5192
+ variants: {
5193
+ variant: {
5194
+ default: "ddga-menubar__trigger--default",
5195
+ outline: "ddga-menubar__trigger--outline"
5196
+ }
5197
+ },
5198
+ defaultVariants: {
5199
+ variant: "default"
5200
+ }
5201
+ });
5202
+ function Menubar({ className, ...props }) {
5203
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
5204
+ import_radix_ui29.Menubar.Root,
5205
+ {
5206
+ "data-slot": "menubar",
5207
+ className: cn("ddga-menubar", className),
5208
+ ...props
5209
+ }
5210
+ );
5211
+ }
5212
+ function MenubarMenu(props) {
5213
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.Menu, { ...props });
5214
+ }
5215
+ function MenubarTrigger({ variant, className, ...props }) {
5216
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
5217
+ import_radix_ui29.Menubar.Trigger,
5218
+ {
5219
+ "data-slot": "menubar-trigger",
5220
+ "data-variant": variant ?? "default",
5221
+ className: cn(menubarTriggerVariants({ variant }), className),
5222
+ ...props
5223
+ }
5224
+ );
5225
+ }
5226
+ function MenubarContent({ size, className, sideOffset = 6, ...props }) {
5227
+ const ctx = (0, import_react27.useContext)(DgaContext);
5228
+ const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? void 0;
5229
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
5230
+ import_radix_ui29.Menubar.Content,
5231
+ {
5232
+ "data-slot": "menubar-content",
5233
+ sideOffset,
5234
+ className: cn(menubarContentVariants({ size }), className),
5235
+ ...props
5236
+ }
5237
+ ) });
5238
+ }
5239
+ function MenubarItem({
5240
+ className,
5241
+ destructive,
5242
+ startIcon,
5243
+ shortcut,
5244
+ children,
5245
+ ...props
5246
+ }) {
5247
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
5248
+ import_radix_ui29.Menubar.Item,
5249
+ {
5250
+ "data-slot": "menubar-item",
5251
+ "data-destructive": destructive ? "" : void 0,
5252
+ className: cn("ddga-menubar-menu__item", className),
5253
+ ...props,
5254
+ children: [
5255
+ startIcon ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__icon", "aria-hidden": "true", children: startIcon }) : null,
5256
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__label", children }),
5257
+ shortcut ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__shortcut", "aria-hidden": "true", children: shortcut }) : null
5258
+ ]
5259
+ }
5260
+ );
5261
+ }
5262
+ function MenubarCheckboxItem({
5263
+ className,
5264
+ children,
5265
+ onSelect,
5266
+ ...props
5267
+ }) {
5268
+ const handleSelect = onSelect ?? ((event) => {
5269
+ event.preventDefault();
5270
+ });
5271
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
5272
+ import_radix_ui29.Menubar.CheckboxItem,
5273
+ {
5274
+ "data-slot": "menubar-checkbox-item",
5275
+ className: cn("ddga-menubar-menu__item", "ddga-menubar-menu__item--checkable", className),
5276
+ onSelect: handleSelect,
5277
+ ...props,
5278
+ children: [
5279
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__indicator", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Check, { className: "ddga-menubar-menu__indicator-icon" }) }) }),
5280
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__label", children })
5281
+ ]
5282
+ }
5283
+ );
5284
+ }
5285
+ function MenubarRadioGroup(props) {
5286
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
5287
+ }
5288
+ function MenubarRadioItem({ className, children, onSelect, ...props }) {
5289
+ const handleSelect = onSelect ?? ((event) => {
5290
+ event.preventDefault();
5291
+ });
5292
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
5293
+ import_radix_ui29.Menubar.RadioItem,
5294
+ {
5295
+ "data-slot": "menubar-radio-item",
5296
+ className: cn("ddga-menubar-menu__item", "ddga-menubar-menu__item--checkable", className),
5297
+ onSelect: handleSelect,
5298
+ ...props,
5299
+ children: [
5300
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__indicator", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__radio-dot" }) }) }),
5301
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__label", children })
5302
+ ]
5303
+ }
5304
+ );
5305
+ }
5306
+ function MenubarLabel({ className, ...props }) {
5307
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
5308
+ import_radix_ui29.Menubar.Label,
5309
+ {
5310
+ "data-slot": "menubar-label",
5311
+ className: cn("ddga-menubar-menu__group-label", className),
5312
+ ...props
5313
+ }
5314
+ );
5315
+ }
5316
+ function MenubarSeparator({ className, ...props }) {
5317
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
5318
+ import_radix_ui29.Menubar.Separator,
5319
+ {
5320
+ "data-slot": "menubar-separator",
5321
+ className: cn("ddga-menubar-menu__separator", className),
5322
+ ...props
5323
+ }
5324
+ );
5325
+ }
5326
+ function MenubarGroup(props) {
5327
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.Group, { "data-slot": "menubar-group", ...props });
5328
+ }
5329
+ function MenubarSub(props) {
5330
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.Sub, { ...props });
5331
+ }
5332
+ function MenubarSubTrigger({ className, startIcon, children, ...props }) {
5333
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
5334
+ import_radix_ui29.Menubar.SubTrigger,
5335
+ {
5336
+ "data-slot": "menubar-sub-trigger",
5337
+ className: cn("ddga-menubar-menu__item", "ddga-menubar-menu__item--sub", className),
5338
+ ...props,
5339
+ children: [
5340
+ startIcon ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__icon", "aria-hidden": "true", children: startIcon }) : null,
5341
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ddga-menubar-menu__label", children }),
5342
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ChevronRight, { className: "ddga-menubar-menu__sub-chevron", "aria-hidden": "true" })
5343
+ ]
5344
+ }
5345
+ );
5346
+ }
5347
+ function MenubarSubContent({ size, className, ...props }) {
5348
+ const ctx = (0, import_react27.useContext)(DgaContext);
5349
+ const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? void 0;
5350
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_radix_ui29.Menubar.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
5351
+ import_radix_ui29.Menubar.SubContent,
5352
+ {
5353
+ "data-slot": "menubar-sub-content",
5354
+ className: cn(menubarContentVariants({ size }), className),
5355
+ ...props
5356
+ }
5357
+ ) });
5358
+ }
5359
+
5360
+ // src/components/Timeline/Timeline.tsx
5361
+ var import_class_variance_authority40 = require("class-variance-authority");
5362
+ var import_jsx_runtime45 = require("react/jsx-runtime");
5363
+ var timelineVariants = (0, import_class_variance_authority40.cva)("ddga-timeline", {
5364
+ variants: {
5365
+ size: {
5366
+ sm: "ddga-timeline--sm",
5367
+ md: "ddga-timeline--md"
5368
+ },
5369
+ orientation: {
5370
+ vertical: "ddga-timeline--vertical",
5371
+ horizontal: "ddga-timeline--horizontal"
5372
+ }
5373
+ },
5374
+ defaultVariants: {
5375
+ size: "md",
5376
+ orientation: "vertical"
5377
+ }
5378
+ });
5379
+ var timelineMarkerVariants = (0, import_class_variance_authority40.cva)("ddga-timeline__marker", {
5380
+ variants: {
5381
+ status: {
5382
+ default: "ddga-timeline__marker--default",
5383
+ success: "ddga-timeline__marker--success",
5384
+ error: "ddga-timeline__marker--error",
5385
+ warning: "ddga-timeline__marker--warning",
5386
+ info: "ddga-timeline__marker--info"
5387
+ }
5388
+ },
5389
+ defaultVariants: {
5390
+ status: "default"
5391
+ }
5392
+ });
5393
+ function Timeline({ size, orientation, className, ...props }) {
5394
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
5395
+ "ol",
5396
+ {
5397
+ "data-slot": "timeline",
5398
+ "data-orientation": orientation ?? "vertical",
5399
+ className: cn(timelineVariants({ size, orientation }), className),
5400
+ ...props
5401
+ }
5402
+ );
5403
+ }
5404
+ function TimelineItem({ className, ...props }) {
5405
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("li", { "data-slot": "timeline-item", className: cn("ddga-timeline__item", className), ...props });
5406
+ }
5407
+ function TimelineMarker({ status, className, children, ...props }) {
5408
+ const resolved = status ?? "default";
5409
+ const reached = resolved !== "default";
5410
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
5411
+ "span",
5412
+ {
5413
+ "aria-hidden": "true",
5414
+ "data-slot": "timeline-marker",
5415
+ "data-status": resolved,
5416
+ "data-reached": reached ? "" : void 0,
5417
+ className: cn(timelineMarkerVariants({ status }), className),
5418
+ ...props,
5419
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ddga-timeline__dot" })
5420
+ }
5421
+ );
5422
+ }
5423
+ function TimelineContent({ className, ...props }) {
5424
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
5425
+ "div",
5426
+ {
5427
+ "data-slot": "timeline-content",
5428
+ className: cn("ddga-timeline__content", className),
5429
+ ...props
5430
+ }
5431
+ );
5432
+ }
5433
+ function TimelineTitle({ className, ...props }) {
5434
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { "data-slot": "timeline-title", className: cn("ddga-timeline__title", className), ...props });
5435
+ }
5436
+ function TimelineDescription({ className, ...props }) {
5437
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
5438
+ "span",
5439
+ {
5440
+ "data-slot": "timeline-description",
5441
+ className: cn("ddga-timeline__description", className),
5442
+ ...props
5443
+ }
5444
+ );
5445
+ }
5446
+ function TimelineTime({ className, ...props }) {
5447
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("time", { "data-slot": "timeline-time", className: cn("ddga-timeline__time", className), ...props });
5448
+ }
5449
+
5450
+ // src/providers/DgaProvider.tsx
5451
+ var import_react28 = require("react");
5452
+ var import_radix_ui30 = require("radix-ui");
5453
+ var import_tokens = require("@dev-dga/tokens");
5454
+ var import_jsx_runtime46 = require("react/jsx-runtime");
5455
+ function DgaProvider({
5456
+ dir = "ltr",
5457
+ locale,
5458
+ mode = "light",
5459
+ theme,
5460
+ as: Component = "div",
5461
+ className,
5462
+ style: consumerStyle,
5463
+ children
5464
+ }) {
5465
+ const parentCtx = (0, import_react28.useContext)(DgaContext);
5466
+ const isNested = parentCtx !== null;
5467
+ const [rootEl, setRootEl] = (0, import_react28.useState)(null);
5468
+ const portalRef = (0, import_react28.useRef)(null);
5469
+ const [portalEl, setPortalEl] = (0, import_react28.useState)(null);
5470
+ const resolvedLocale = locale ?? (dir === "rtl" ? "ar" : "en");
5471
+ const themeVars = (0, import_react28.useMemo)(() => theme ? (0, import_tokens.buildTheme)(theme) : null, [theme]);
5472
+ (0, import_react28.useEffect)(() => {
5473
+ if (typeof document === "undefined") return;
5474
+ const el = document.createElement("div");
5475
+ el.setAttribute("data-slot", "dga-portal");
5476
+ el.style.position = "relative";
5477
+ el.style.zIndex = "50";
5478
+ document.body.appendChild(el);
5479
+ portalRef.current = el;
5480
+ setPortalEl(el);
5481
+ return () => {
5482
+ el.remove();
5483
+ portalRef.current = null;
5484
+ setPortalEl(null);
5485
+ };
5486
+ }, []);
5487
+ (0, import_react28.useEffect)(() => {
5488
+ const el = portalRef.current;
5489
+ if (!el) return;
5490
+ el.setAttribute("data-theme", mode);
5491
+ el.setAttribute("dir", dir);
5492
+ el.style.colorScheme = mode;
5493
+ if (themeVars) {
5494
+ for (const [k, v] of Object.entries(themeVars)) {
5495
+ el.style.setProperty(k, String(v));
5496
+ }
5497
+ }
5498
+ }, [mode, dir, themeVars, portalEl]);
5499
+ const ctxValue = (0, import_react28.useMemo)(
5500
+ () => ({ dir, locale: resolvedLocale, mode, rootEl, portalEl }),
5501
+ [dir, resolvedLocale, mode, rootEl, portalEl]
5502
+ );
5503
+ const inner = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui30.Direction.Provider, { dir, children });
5504
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DgaContext.Provider, { value: ctxValue, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
5505
+ Component,
5506
+ {
5507
+ ref: setRootEl,
5508
+ dir,
5509
+ lang: resolvedLocale,
5510
+ "data-slot": "dga-root",
5511
+ "data-theme": mode,
5512
+ className,
5513
+ style: { colorScheme: mode, ...themeVars ?? {}, ...consumerStyle },
5514
+ children: isNested ? inner : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui30.Tooltip.Provider, { delayDuration: 300, skipDelayDuration: 100, children: inner })
5515
+ }
5516
+ ) });
4245
5517
  }
4246
5518
  // Annotate the CommonJS export names for ESM import in node:
4247
5519
  0 && (module.exports = {
@@ -4307,9 +5579,28 @@ function useDir() {
4307
5579
  DropdownMenuSubContent,
4308
5580
  DropdownMenuSubTrigger,
4309
5581
  DropdownMenuTrigger,
5582
+ EmptyState,
5583
+ EmptyStateActions,
5584
+ EmptyStateDescription,
5585
+ EmptyStateMedia,
5586
+ EmptyStateTitle,
4310
5587
  FieldMessage,
4311
5588
  FileUpload,
4312
5589
  Input,
5590
+ Menubar,
5591
+ MenubarCheckboxItem,
5592
+ MenubarContent,
5593
+ MenubarGroup,
5594
+ MenubarItem,
5595
+ MenubarLabel,
5596
+ MenubarMenu,
5597
+ MenubarRadioGroup,
5598
+ MenubarRadioItem,
5599
+ MenubarSeparator,
5600
+ MenubarSub,
5601
+ MenubarSubContent,
5602
+ MenubarSubTrigger,
5603
+ MenubarTrigger,
4313
5604
  Modal,
4314
5605
  ModalClose,
4315
5606
  ModalContent,
@@ -4326,15 +5617,48 @@ function useDir() {
4326
5617
  PaginationLink,
4327
5618
  PaginationNext,
4328
5619
  PaginationPrevious,
5620
+ Popover,
5621
+ PopoverAnchor,
5622
+ PopoverClose,
5623
+ PopoverContent,
5624
+ PopoverTrigger,
4329
5625
  Progress,
4330
5626
  Radio,
4331
5627
  RadioGroup,
4332
5628
  Rating,
5629
+ ScrollArea,
4333
5630
  Select,
4334
5631
  SelectItem,
5632
+ Sidebar,
5633
+ SidebarContent,
5634
+ SidebarFooter,
5635
+ SidebarGroup,
5636
+ SidebarGroupAction,
5637
+ SidebarGroupContent,
5638
+ SidebarGroupLabel,
5639
+ SidebarHeader,
5640
+ SidebarInset,
5641
+ SidebarMenu,
5642
+ SidebarMenuAction,
5643
+ SidebarMenuBadge,
5644
+ SidebarMenuButton,
5645
+ SidebarMenuItem,
5646
+ SidebarMenuSkeleton,
5647
+ SidebarMenuSub,
5648
+ SidebarMenuSubButton,
5649
+ SidebarMenuSubItem,
5650
+ SidebarProvider,
5651
+ SidebarRail,
5652
+ SidebarSeparator,
5653
+ SidebarTrigger,
4335
5654
  Skeleton,
4336
5655
  Slider,
4337
5656
  Spinner,
5657
+ Stat,
5658
+ StatChange,
5659
+ StatGroup,
5660
+ StatLabel,
5661
+ StatValue,
4338
5662
  Step,
4339
5663
  StepDescription,
4340
5664
  StepIndicator,
@@ -4346,6 +5670,13 @@ function useDir() {
4346
5670
  TabsList,
4347
5671
  TabsTrigger,
4348
5672
  Textarea,
5673
+ Timeline,
5674
+ TimelineContent,
5675
+ TimelineDescription,
5676
+ TimelineItem,
5677
+ TimelineMarker,
5678
+ TimelineTime,
5679
+ TimelineTitle,
4349
5680
  Toaster,
4350
5681
  Toggle,
4351
5682
  ToggleGroup,
@@ -4372,25 +5703,36 @@ function useDir() {
4372
5703
  dividerVariants,
4373
5704
  drawerVariants,
4374
5705
  dropdownMenuVariants,
5706
+ emptyStateVariants,
4375
5707
  inputVariants,
5708
+ menubarContentVariants,
5709
+ menubarTriggerVariants,
4376
5710
  modalContentVariants,
4377
5711
  numberInputVariants,
4378
5712
  paginationLinkVariants,
4379
5713
  paginationVariants,
5714
+ popoverContentVariants,
4380
5715
  progressVariants,
4381
5716
  radioGroupVariants,
4382
5717
  radioVariants,
4383
5718
  ratingVariants,
5719
+ scrollAreaVariants,
4384
5720
  selectTriggerVariants,
5721
+ sidebarMenuButtonVariants,
5722
+ sidebarMenuSubButtonVariants,
4385
5723
  skeletonVariants,
4386
5724
  sliderVariants,
4387
5725
  spinnerVariants,
5726
+ statGroupVariants,
5727
+ statVariants,
4388
5728
  stepVariants,
4389
5729
  stepsVariants,
4390
5730
  switchVariants,
4391
5731
  tabsListVariants,
4392
5732
  tabsVariants,
4393
5733
  textareaVariants,
5734
+ timelineMarkerVariants,
5735
+ timelineVariants,
4394
5736
  toast,
4395
5737
  toastStore,
4396
5738
  toastVariants,
@@ -4400,6 +5742,8 @@ function useDir() {
4400
5742
  tooltipContentVariants,
4401
5743
  useDga,
4402
5744
  useDir,
4403
- useFieldA11y
5745
+ useFieldA11y,
5746
+ useIsMobile,
5747
+ useSidebar
4404
5748
  });
4405
5749
  //# sourceMappingURL=index.cjs.map