@aivenio/aquarium 4.1.2 → 4.3.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/atoms.cjs +1 -1
- package/dist/atoms.mjs +1 -1
- package/dist/src/atoms/DateField/DateField.d.ts +13 -0
- package/dist/src/atoms/DateField/DateField.js +43 -0
- package/dist/src/{molecules → atoms}/DatePicker/Calendar.js +4 -4
- package/dist/src/atoms/DatePicker/DatePicker.d.ts +106 -0
- package/dist/src/atoms/DatePicker/DatePicker.js +80 -0
- package/dist/src/atoms/DatePicker/DatePickerButton.d.ts +7 -0
- package/dist/src/atoms/DatePicker/DatePickerButton.js +39 -0
- package/dist/src/{molecules → atoms}/DatePicker/RangeCalendar.js +2 -2
- package/dist/src/atoms/Field/Field.js +7 -0
- package/dist/src/atoms/PageHeader/PageHeader.js +2 -2
- package/dist/src/molecules/Breadcrumbs/Breadcrumbs.js +2 -2
- package/dist/src/molecules/DateField/DateField.d.ts +3 -6
- package/dist/src/molecules/DateField/DateField.js +3 -8
- package/dist/src/molecules/DatePicker/DatePicker.d.ts +65 -4
- package/dist/src/molecules/DatePicker/DatePicker.js +73 -48
- package/dist/src/molecules/DatePicker/DateRangePicker.d.ts +69 -4
- package/dist/src/molecules/DatePicker/DateRangePicker.js +77 -49
- package/dist/src/molecules/DropdownMenu/SearchField.js +2 -2
- package/dist/src/molecules/Filter/Filter.d.ts +2 -0
- package/dist/src/molecules/Filter/Filter.js +3 -0
- package/dist/src/molecules/Link/Link.js +3 -3
- package/dist/src/molecules/Spacing/Spacing.d.ts +1 -1
- package/dist/src/molecules/Spacing/Spacing.js +1 -1
- package/dist/src/molecules/TimeField/TimeField.d.ts +5 -8
- package/dist/src/molecules/TimeField/TimeField.js +3 -8
- package/dist/src/molecules/index.d.ts +1 -0
- package/dist/src/molecules/index.js +2 -1
- package/dist/styles.css +6 -0
- package/dist/system.cjs +622 -419
- package/dist/system.mjs +634 -425
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/types/tailwindGenerated.d.ts +1 -1
- package/package.json +1 -1
- package/dist/src/molecules/DateField/DateInput.d.ts +0 -3
- package/dist/src/molecules/DateField/DateInput.js +0 -22
- package/dist/src/molecules/DatePicker/Button.d.ts +0 -5
- package/dist/src/molecules/DatePicker/Button.js +0 -35
- package/dist/src/molecules/DatePicker/Dialog.d.ts +0 -3
- package/dist/src/molecules/DatePicker/Dialog.js +0 -7
- package/dist/src/molecules/DatePicker/Popover.d.ts +0 -7
- package/dist/src/molecules/DatePicker/Popover.js +0 -27
- package/dist/src/molecules/Field/Field.js +0 -7
- /package/dist/src/{molecules → atoms}/DatePicker/Calendar.d.ts +0 -0
- /package/dist/src/{molecules → atoms}/DatePicker/RangeCalendar.d.ts +0 -0
- /package/dist/src/{molecules → atoms}/Field/Field.d.ts +0 -0
package/dist/system.cjs
CHANGED
@@ -4314,16 +4314,16 @@ __export(system_exports, {
|
|
4314
4314
|
ControlLabel: () => ControlLabel,
|
4315
4315
|
DataList: () => DataList2,
|
4316
4316
|
DataTable: () => DataTable,
|
4317
|
-
DatePicker: () =>
|
4317
|
+
DatePicker: () => DatePicker2,
|
4318
4318
|
DatePickerBase: () => DatePickerBase,
|
4319
|
-
DateRangePicker: () =>
|
4319
|
+
DateRangePicker: () => DateRangePicker2,
|
4320
4320
|
DateRangePickerBase: () => DateRangePickerBase,
|
4321
4321
|
DateTimePicker: () => DateTimePicker,
|
4322
4322
|
DateTimePickerBase: () => DateTimePickerBase,
|
4323
4323
|
DateTimeRangePicker: () => DateTimeRangePicker,
|
4324
4324
|
DateTimeRangePickerBase: () => DateTimeRangePickerBase,
|
4325
4325
|
DesignSystemContext: () => DesignSystemContext,
|
4326
|
-
Dialog: () =>
|
4326
|
+
Dialog: () => Dialog2,
|
4327
4327
|
Divider: () => Divider2,
|
4328
4328
|
Drawer: () => Drawer,
|
4329
4329
|
Dropdown: () => Dropdown,
|
@@ -4332,6 +4332,7 @@ __export(system_exports, {
|
|
4332
4332
|
EmptyState: () => EmptyState,
|
4333
4333
|
EmptyStateLayout: () => EmptyStateLayout,
|
4334
4334
|
FileInput: () => FileInput,
|
4335
|
+
Filter: () => Filter,
|
4335
4336
|
FormControl: () => FormControl,
|
4336
4337
|
Grid: () => Grid,
|
4337
4338
|
HelperText: () => HelperText,
|
@@ -4360,7 +4361,7 @@ __export(system_exports, {
|
|
4360
4361
|
Option: () => Option,
|
4361
4362
|
PageHeader: () => PageHeader2,
|
4362
4363
|
Pagination: () => Pagination,
|
4363
|
-
Popover: () =>
|
4364
|
+
Popover: () => Popover2,
|
4364
4365
|
PopoverDialog: () => PopoverDialog2,
|
4365
4366
|
Portal: () => Portal,
|
4366
4367
|
PositionerPlacement: () => PositionerPlacement,
|
@@ -4461,16 +4462,16 @@ __export(molecules_exports, {
|
|
4461
4462
|
ControlLabel: () => ControlLabel,
|
4462
4463
|
DataList: () => DataList2,
|
4463
4464
|
DataTable: () => DataTable,
|
4464
|
-
DatePicker: () =>
|
4465
|
+
DatePicker: () => DatePicker2,
|
4465
4466
|
DatePickerBase: () => DatePickerBase,
|
4466
|
-
DateRangePicker: () =>
|
4467
|
+
DateRangePicker: () => DateRangePicker2,
|
4467
4468
|
DateRangePickerBase: () => DateRangePickerBase,
|
4468
4469
|
DateTimePicker: () => DateTimePicker,
|
4469
4470
|
DateTimePickerBase: () => DateTimePickerBase,
|
4470
4471
|
DateTimeRangePicker: () => DateTimeRangePicker,
|
4471
4472
|
DateTimeRangePickerBase: () => DateTimeRangePickerBase,
|
4472
4473
|
DesignSystemContext: () => DesignSystemContext,
|
4473
|
-
Dialog: () =>
|
4474
|
+
Dialog: () => Dialog2,
|
4474
4475
|
Divider: () => Divider2,
|
4475
4476
|
Drawer: () => Drawer,
|
4476
4477
|
Dropdown: () => Dropdown,
|
@@ -4479,6 +4480,7 @@ __export(molecules_exports, {
|
|
4479
4480
|
EmptyState: () => EmptyState,
|
4480
4481
|
EmptyStateLayout: () => EmptyStateLayout,
|
4481
4482
|
FileInput: () => FileInput,
|
4483
|
+
Filter: () => Filter,
|
4482
4484
|
Grid: () => Grid,
|
4483
4485
|
Icon: () => Icon,
|
4484
4486
|
InlineIcon: () => InlineIcon,
|
@@ -4503,7 +4505,7 @@ __export(molecules_exports, {
|
|
4503
4505
|
Option: () => Option,
|
4504
4506
|
PageHeader: () => PageHeader2,
|
4505
4507
|
Pagination: () => Pagination,
|
4506
|
-
Popover: () =>
|
4508
|
+
Popover: () => Popover2,
|
4507
4509
|
PopoverDialog: () => PopoverDialog2,
|
4508
4510
|
Portal: () => Portal,
|
4509
4511
|
ProgressBar: () => ProgressBar2,
|
@@ -7942,9 +7944,20 @@ var LinkButton2 = ({
|
|
7942
7944
|
className,
|
7943
7945
|
tooltip,
|
7944
7946
|
tooltipPlacement,
|
7947
|
+
"aria-label": ariaLabel,
|
7945
7948
|
...props
|
7946
7949
|
}) => {
|
7947
|
-
const content = /* @__PURE__ */ import_react27.default.createElement(
|
7950
|
+
const content = /* @__PURE__ */ import_react27.default.createElement(
|
7951
|
+
LinkButton,
|
7952
|
+
{
|
7953
|
+
className: (0, import_classnames5.default)("Aquarium-Link", className),
|
7954
|
+
"aria-label": props.kind === "icon" ? ariaLabel ?? tooltip : ariaLabel,
|
7955
|
+
...props
|
7956
|
+
},
|
7957
|
+
icon && iconPlacement === "left" && /* @__PURE__ */ import_react27.default.createElement(Icon2, { icon, dense: props.dense }),
|
7958
|
+
children,
|
7959
|
+
icon && iconPlacement === "right" && /* @__PURE__ */ import_react27.default.createElement(Icon2, { icon, dense: props.dense })
|
7960
|
+
);
|
7948
7961
|
return tooltip ? /* @__PURE__ */ import_react27.default.createElement(Tooltip, { content: tooltip, placement: tooltipPlacement }, content) : content;
|
7949
7962
|
};
|
7950
7963
|
var LinkButtonPrimary = (props) => /* @__PURE__ */ import_react27.default.createElement(LinkButton2, { kind: "primary", ...props });
|
@@ -8402,7 +8415,7 @@ var Breadcrumbs = (props) => {
|
|
8402
8415
|
const crumbs = import_react35.default.Children.toArray(children).filter(
|
8403
8416
|
(c) => Boolean(c)
|
8404
8417
|
);
|
8405
|
-
return /* @__PURE__ */ import_react35.default.createElement("nav", { className: (0, import_classnames6.default)("Aquarium-Breadcrumbs", className), "aria-label": "Breadcrumbs" }, /* @__PURE__ */ import_react35.default.createElement("ol", { className: tw("flex flex-row flex-
|
8418
|
+
return /* @__PURE__ */ import_react35.default.createElement("nav", { className: (0, import_classnames6.default)("Aquarium-Breadcrumbs", className), "aria-label": "Breadcrumbs" }, /* @__PURE__ */ import_react35.default.createElement("ol", { className: tw("flex flex-row flex-wrap items-center typography-caption") }, crumbs.map((crumb, index) => {
|
8406
8419
|
const isLast = index === crumbs.length - 1;
|
8407
8420
|
return (
|
8408
8421
|
// Using index as key here is not good, but there isn't too many other options to choose from either.
|
@@ -11219,7 +11232,7 @@ var Pressable = import_react76.default.forwardRef(({ children, ...props }, ref)
|
|
11219
11232
|
var import_react78 = __toESM(require("react"));
|
11220
11233
|
var import_react_aria_components4 = require("react-aria-components");
|
11221
11234
|
|
11222
|
-
// src/
|
11235
|
+
// src/atoms/Field/Field.tsx
|
11223
11236
|
var import_react77 = __toESM(require("react"));
|
11224
11237
|
var import_react_aria_components3 = require("react-aria-components");
|
11225
11238
|
|
@@ -11256,7 +11269,7 @@ var fieldGroup = (0, import_tailwind_variants7.tv)({
|
|
11256
11269
|
variants: fieldBorder.variants
|
11257
11270
|
});
|
11258
11271
|
|
11259
|
-
// src/
|
11272
|
+
// src/atoms/Field/Field.tsx
|
11260
11273
|
var FieldGroup = (props) => {
|
11261
11274
|
return /* @__PURE__ */ import_react77.default.createElement(import_react_aria_components3.Group, { ...props, className: (renderProps) => fieldGroup(renderProps) });
|
11262
11275
|
};
|
@@ -12247,12 +12260,18 @@ DataTable.Skeleton = DataListSkeleton;
|
|
12247
12260
|
|
12248
12261
|
// src/molecules/DatePicker/DatePicker.tsx
|
12249
12262
|
var import_react95 = __toESM(require("react"));
|
12250
|
-
var
|
12263
|
+
var import_react_aria_components11 = require("react-aria-components");
|
12251
12264
|
var import_label2 = require("@react-aria/label");
|
12252
12265
|
var import_utils24 = require("@react-aria/utils");
|
12253
12266
|
var import_lodash_es33 = require("lodash-es");
|
12254
12267
|
|
12255
|
-
// src/molecules/
|
12268
|
+
// src/molecules/TimeField/TimeField.tsx
|
12269
|
+
var import_react90 = __toESM(require("react"));
|
12270
|
+
var import_label = require("@react-aria/label");
|
12271
|
+
var import_utils22 = require("@react-aria/utils");
|
12272
|
+
var import_lodash_es32 = require("lodash-es");
|
12273
|
+
|
12274
|
+
// src/atoms/DateField/DateField.tsx
|
12256
12275
|
var import_react89 = __toESM(require("react"));
|
12257
12276
|
var import_react_aria_components6 = require("react-aria-components");
|
12258
12277
|
var import_tailwind_variants8 = require("tailwind-variants");
|
@@ -12270,77 +12289,74 @@ var segmentStyles = (0, import_tailwind_variants8.tv)({
|
|
12270
12289
|
}
|
12271
12290
|
}
|
12272
12291
|
});
|
12273
|
-
|
12292
|
+
var DateInput = (props) => {
|
12274
12293
|
return /* @__PURE__ */ import_react89.default.createElement(import_react_aria_components6.DateInput, { className: (renderProps) => fieldGroup({ ...renderProps, class: "block" }), ...props }, (segment) => /* @__PURE__ */ import_react89.default.createElement(import_react_aria_components6.DateSegment, { segment, className: segmentStyles }));
|
12275
|
-
}
|
12294
|
+
};
|
12295
|
+
var TimeField = ({ disabled, valid, ...props }) => {
|
12296
|
+
return /* @__PURE__ */ import_react89.default.createElement(import_react_aria_components6.TimeField, { ...props, isInvalid: valid === false, isDisabled: disabled }, /* @__PURE__ */ import_react89.default.createElement(DateInput, null));
|
12297
|
+
};
|
12276
12298
|
|
12277
12299
|
// src/molecules/TimeField/TimeField.tsx
|
12278
|
-
|
12279
|
-
var import_react_aria_components7 = require("react-aria-components");
|
12280
|
-
var import_label = require("@react-aria/label");
|
12281
|
-
var import_utils22 = require("@react-aria/utils");
|
12282
|
-
var import_lodash_es32 = require("lodash-es");
|
12283
|
-
function TimeFieldBase({ disabled, valid, ...props }) {
|
12284
|
-
return /* @__PURE__ */ import_react90.default.createElement(import_react_aria_components7.TimeField, { ...props, isInvalid: valid === false, isDisabled: disabled }, /* @__PURE__ */ import_react90.default.createElement(DateInput, null));
|
12285
|
-
}
|
12286
|
-
function TimeField(props) {
|
12300
|
+
function TimeField2(props) {
|
12287
12301
|
const { labelProps, fieldProps } = (0, import_label.useLabel)({ label: props.labelText });
|
12288
12302
|
const errorMessageId = (0, import_utils22.useId)();
|
12289
12303
|
const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
|
12290
12304
|
const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
|
12291
12305
|
const baseProps = (0, import_lodash_es32.omit)(props, Object.keys(labelControlProps));
|
12292
|
-
return /* @__PURE__ */ import_react90.default.createElement(LabelControl, { ...labelProps, ...labelControlProps, messageId: errorMessageId, className: "Aquarium-TimeField" }, /* @__PURE__ */ import_react90.default.createElement(
|
12306
|
+
return /* @__PURE__ */ import_react90.default.createElement(LabelControl, { ...labelProps, ...labelControlProps, messageId: errorMessageId, className: "Aquarium-TimeField" }, /* @__PURE__ */ import_react90.default.createElement(TimeField, { ...baseProps, ...fieldProps, ...errorProps, disabled: props.disabled, valid: props.valid }));
|
12293
12307
|
}
|
12294
12308
|
|
12295
|
-
// src/
|
12296
|
-
var
|
12309
|
+
// src/atoms/DatePicker/Calendar.tsx
|
12310
|
+
var import_react92 = __toESM(require("react"));
|
12297
12311
|
var import_react_aria_components8 = require("react-aria-components");
|
12312
|
+
var import_tailwind_variants10 = require("tailwind-variants");
|
12313
|
+
var import_chevronLeft4 = __toESM(require_chevronLeft());
|
12314
|
+
var import_chevronRight4 = __toESM(require_chevronRight());
|
12315
|
+
|
12316
|
+
// src/atoms/DatePicker/DatePickerButton.tsx
|
12317
|
+
var import_react91 = __toESM(require("react"));
|
12318
|
+
var import_react_aria_components7 = require("react-aria-components");
|
12319
|
+
var import_tailwind_variants9 = require("tailwind-variants");
|
12298
12320
|
var import_calendar2 = __toESM(require_calendar());
|
12299
12321
|
var import_smallCross3 = __toESM(require_smallCross());
|
12300
|
-
|
12301
|
-
|
12302
|
-
|
12303
|
-
{
|
12304
|
-
|
12305
|
-
|
12306
|
-
props.className,
|
12307
|
-
(className, renderProps) => buttonClasses({ ...renderProps, className, dense: true, kind: "icon" })
|
12308
|
-
)
|
12322
|
+
var datePickerButton = (0, import_tailwind_variants9.tv)({
|
12323
|
+
base: "p-0",
|
12324
|
+
variants: {
|
12325
|
+
hideWhenParentIsNotHoveredOrFocused: {
|
12326
|
+
true: "opacity-0 group-hover:opacity-100 group-focus-within:opacity-100",
|
12327
|
+
false: ""
|
12309
12328
|
}
|
12310
|
-
|
12311
|
-
}
|
12312
|
-
var
|
12313
|
-
|
12314
|
-
hideWhenParentIsNotHoveredOrFocused = true,
|
12329
|
+
}
|
12330
|
+
});
|
12331
|
+
var DatePickerButton = ({
|
12332
|
+
hideWhenParentIsNotHoveredOrFocused = false,
|
12315
12333
|
...props
|
12316
12334
|
}) => {
|
12317
12335
|
return /* @__PURE__ */ import_react91.default.createElement(
|
12318
|
-
|
12336
|
+
import_react_aria_components7.Button,
|
12319
12337
|
{
|
12320
12338
|
...props,
|
12321
|
-
className:
|
12322
|
-
className,
|
12323
|
-
|
12324
|
-
|
12339
|
+
className: (0, import_react_aria_components7.composeRenderProps)(
|
12340
|
+
props.className,
|
12341
|
+
(className, renderProps) => buttonClasses({
|
12342
|
+
...renderProps,
|
12343
|
+
className: datePickerButton({ hideWhenParentIsNotHoveredOrFocused, className }),
|
12344
|
+
dense: true,
|
12345
|
+
kind: "icon"
|
12325
12346
|
})
|
12326
12347
|
)
|
12327
12348
|
}
|
12328
12349
|
);
|
12329
12350
|
};
|
12330
|
-
|
12331
|
-
return /* @__PURE__ */ import_react91.default.createElement(
|
12332
|
-
}
|
12333
|
-
|
12334
|
-
return /* @__PURE__ */ import_react91.default.createElement(
|
12335
|
-
}
|
12351
|
+
var ClearInputButton = (props) => {
|
12352
|
+
return /* @__PURE__ */ import_react91.default.createElement(DatePickerButton, { ...props, "aria-label": "Clear", slot: null, hideWhenParentIsNotHoveredOrFocused: true }, /* @__PURE__ */ import_react91.default.createElement(Icon2, { icon: import_smallCross3.default, dense: true }));
|
12353
|
+
};
|
12354
|
+
var CalendarButton = (props) => {
|
12355
|
+
return /* @__PURE__ */ import_react91.default.createElement(DatePickerButton, { ...props, "aria-label": "Calendar" }, /* @__PURE__ */ import_react91.default.createElement(Icon2, { icon: import_calendar2.default, dense: true }));
|
12356
|
+
};
|
12336
12357
|
|
12337
|
-
// src/
|
12338
|
-
var
|
12339
|
-
var import_react_aria_components9 = require("react-aria-components");
|
12340
|
-
var import_tailwind_variants9 = require("tailwind-variants");
|
12341
|
-
var import_chevronLeft4 = __toESM(require_chevronLeft());
|
12342
|
-
var import_chevronRight4 = __toESM(require_chevronRight());
|
12343
|
-
var cellStyles = (0, import_tailwind_variants9.tv)({
|
12358
|
+
// src/atoms/DatePicker/Calendar.tsx
|
12359
|
+
var cellStyles = (0, import_tailwind_variants10.tv)({
|
12344
12360
|
extend: focusRing,
|
12345
12361
|
base: "w-8 h-8 typography-small cursor-default rounded-md flex items-center justify-center outside-month:hidden",
|
12346
12362
|
variants: {
|
@@ -12357,274 +12373,88 @@ var cellStyles = (0, import_tailwind_variants9.tv)({
|
|
12357
12373
|
}
|
12358
12374
|
});
|
12359
12375
|
var Calendar = (props) => {
|
12360
|
-
return /* @__PURE__ */ import_react92.default.createElement(
|
12376
|
+
return /* @__PURE__ */ import_react92.default.createElement(import_react_aria_components8.Calendar, { ...props }, /* @__PURE__ */ import_react92.default.createElement(CalendarHeader, null), /* @__PURE__ */ import_react92.default.createElement(import_react_aria_components8.CalendarGrid, null, /* @__PURE__ */ import_react92.default.createElement(CalendarGridHeader, null), /* @__PURE__ */ import_react92.default.createElement(import_react_aria_components8.CalendarGridBody, null, (date) => /* @__PURE__ */ import_react92.default.createElement(import_react_aria_components8.CalendarCell, { date, className: cellStyles }))));
|
12361
12377
|
};
|
12362
12378
|
var CalendarHeader = () => {
|
12363
|
-
return /* @__PURE__ */ import_react92.default.createElement("header", { className: "flex items-center gap-1 pb-5 w-full" }, /* @__PURE__ */ import_react92.default.createElement(
|
12379
|
+
return /* @__PURE__ */ import_react92.default.createElement("header", { className: "flex items-center gap-1 pb-5 w-full" }, /* @__PURE__ */ import_react92.default.createElement(DatePickerButton, { slot: "previous", className: "p-3" }, /* @__PURE__ */ import_react92.default.createElement(Icon, { icon: import_chevronLeft4.default })), /* @__PURE__ */ import_react92.default.createElement(import_react_aria_components8.Heading, { className: tw("flex-1 typography-default-strong text-center") }), /* @__PURE__ */ import_react92.default.createElement(DatePickerButton, { slot: "next", className: "p-3" }, /* @__PURE__ */ import_react92.default.createElement(Icon, { icon: import_chevronRight4.default })));
|
12364
12380
|
};
|
12365
12381
|
var CalendarGridHeader = () => {
|
12366
|
-
return /* @__PURE__ */ import_react92.default.createElement(
|
12382
|
+
return /* @__PURE__ */ import_react92.default.createElement(import_react_aria_components8.CalendarGridHeader, null, (day) => /* @__PURE__ */ import_react92.default.createElement(import_react_aria_components8.CalendarHeaderCell, { className: "text-xs text-inactive typography-caption" }, day));
|
12367
12383
|
};
|
12368
12384
|
|
12369
|
-
// src/
|
12385
|
+
// src/atoms/DatePicker/DatePicker.tsx
|
12370
12386
|
var import_react93 = __toESM(require("react"));
|
12371
|
-
var
|
12372
|
-
|
12373
|
-
|
12374
|
-
|
12375
|
-
|
12376
|
-
|
12377
|
-
|
12378
|
-
|
12379
|
-
|
12380
|
-
|
12381
|
-
|
12382
|
-
|
12383
|
-
|
12384
|
-
|
12385
|
-
}
|
12386
|
-
|
12387
|
-
// src/molecules/DatePicker/Popover.tsx
|
12388
|
-
var import_react94 = __toESM(require("react"));
|
12389
|
-
var import_react_aria_components11 = require("react-aria-components");
|
12390
|
-
var Popover2 = ({ children, showArrow, className, ...props }) => {
|
12391
|
-
const popoverContext = (0, import_react_aria_components11.useSlottedContext)(import_react_aria_components11.PopoverContext);
|
12392
|
-
const isSubmenu = popoverContext?.trigger === "SubmenuTrigger";
|
12393
|
-
let offset = showArrow ? 12 : 8;
|
12394
|
-
offset = isSubmenu ? offset - 6 : offset;
|
12395
|
-
return /* @__PURE__ */ import_react94.default.createElement(
|
12396
|
-
import_react_aria_components11.Popover,
|
12397
|
-
{
|
12398
|
-
offset,
|
12399
|
-
...props,
|
12400
|
-
className: tw(
|
12401
|
-
"rounded-sm shadow-16dp bg-popover-content mt-1 overflow-y-auto flex flex-col border border-default outline-none"
|
12402
|
-
)
|
12403
|
-
},
|
12404
|
-
showArrow && /* @__PURE__ */ import_react94.default.createElement(import_react_aria_components11.OverlayArrow, { className: "group" }, /* @__PURE__ */ import_react94.default.createElement(
|
12405
|
-
"svg",
|
12406
|
-
{
|
12407
|
-
width: 12,
|
12408
|
-
height: 12,
|
12409
|
-
viewBox: "0 0 12 12",
|
12410
|
-
className: "block fill-white stroke-1 stroke-black group-placement-bottom:rotate-180 group-placement-left:-rotate-90 group-placement-right:rotate-90"
|
12387
|
+
var import_react_aria_components9 = require("react-aria-components");
|
12388
|
+
var import_tailwind_variants11 = require("tailwind-variants");
|
12389
|
+
var datePickerCalendarStyles = (0, import_tailwind_variants11.tv)({
|
12390
|
+
slots: {
|
12391
|
+
dialog: "flex",
|
12392
|
+
calendar: "[[data-placement]>&]:px-5 [[data-placement]>&]:py-6 max-h-[inherit]",
|
12393
|
+
errorMessage: "typography-caption text-danger-default max-w-[300px]",
|
12394
|
+
presets: "bg-muted py-6 px-5 flex flex-col min-w-[150px] max-w-[300px] self-stretch",
|
12395
|
+
preset: "hover:text-primary-active p-3 text-left hover:underline"
|
12396
|
+
},
|
12397
|
+
variants: {
|
12398
|
+
isPresetActive: {
|
12399
|
+
true: {
|
12400
|
+
preset: "text-primary-active typography-small-strong"
|
12411
12401
|
},
|
12412
|
-
|
12413
|
-
|
12414
|
-
children
|
12415
|
-
);
|
12416
|
-
};
|
12417
|
-
|
12418
|
-
// src/molecules/DatePicker/DatePicker.tsx
|
12419
|
-
function DatePickerClearButton() {
|
12420
|
-
const state = import_react95.default.useContext(import_react_aria_components12.DatePickerStateContext);
|
12421
|
-
if (!state) {
|
12422
|
-
throw new Error("DatePickerStateContext is missing a provider");
|
12423
|
-
}
|
12424
|
-
if (!state.value) {
|
12425
|
-
return null;
|
12426
|
-
}
|
12427
|
-
return /* @__PURE__ */ import_react95.default.createElement(
|
12428
|
-
ClearInputButton,
|
12429
|
-
{
|
12430
|
-
onPress: () => {
|
12431
|
-
state.setValue(null);
|
12402
|
+
false: {
|
12403
|
+
preset: "typography-small"
|
12432
12404
|
}
|
12433
12405
|
}
|
12434
|
-
|
12435
|
-
}
|
12436
|
-
var
|
12437
|
-
disabled,
|
12438
|
-
valid,
|
12439
|
-
granularity,
|
12440
|
-
shouldCloseOnSelect,
|
12441
|
-
errorMessage,
|
12442
|
-
clearSelectionEnabled = true,
|
12443
|
-
...props
|
12444
|
-
}) => {
|
12406
|
+
}
|
12407
|
+
});
|
12408
|
+
var DatePicker = ({ variant, ...props }) => {
|
12445
12409
|
const hasSomeValue = props.value ?? props.defaultValue ?? props.placeholderValue;
|
12446
|
-
return /* @__PURE__ */
|
12447
|
-
|
12410
|
+
return /* @__PURE__ */ import_react93.default.createElement(
|
12411
|
+
import_react_aria_components9.DatePicker,
|
12448
12412
|
{
|
12449
12413
|
...props,
|
12450
|
-
shouldCloseOnSelect: shouldCloseOnSelect ?? variant === "date",
|
12451
|
-
|
12452
|
-
isInvalid: valid === false,
|
12453
|
-
granularity: granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0)
|
12454
|
-
},
|
12455
|
-
/* @__PURE__ */ import_react95.default.createElement(FieldGroup, { className: tw("min-w-[210px] w-auto") }, /* @__PURE__ */ import_react95.default.createElement(DateInput, { className: tw("flex-1") }), /* @__PURE__ */ import_react95.default.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react95.default.createElement(DatePickerClearButton, null), /* @__PURE__ */ import_react95.default.createElement(CalendarButton, null))),
|
12456
|
-
/* @__PURE__ */ import_react95.default.createElement(Popover2, { offset: 0 }, /* @__PURE__ */ import_react95.default.createElement(Dialog, null, /* @__PURE__ */ import_react95.default.createElement(Spacing, { gap: "3" }, /* @__PURE__ */ import_react95.default.createElement(Calendar, null), variant === "datetime" && /* @__PURE__ */ import_react95.default.createElement(PickerTimeField, { granularity }), errorMessage && /* @__PURE__ */ import_react95.default.createElement(import_react_aria_components12.Text, { slot: "errorMessage", className: tw("typography-caption text-danger-default max-w-[300px]") }, errorMessage))))
|
12457
|
-
);
|
12458
|
-
};
|
12459
|
-
var DatePickerBase = createDatePickerBase("date");
|
12460
|
-
var DateTimePickerBase = createDatePickerBase("datetime");
|
12461
|
-
var PickerTimeField = ({ granularity }) => {
|
12462
|
-
const state = import_react95.default.useContext(import_react_aria_components12.DatePickerStateContext);
|
12463
|
-
if (!state) {
|
12464
|
-
throw new Error("DatePickerStateContext is missing a provider");
|
12465
|
-
}
|
12466
|
-
return /* @__PURE__ */ import_react95.default.createElement(
|
12467
|
-
TimeField,
|
12468
|
-
{
|
12469
|
-
labelText: "Time",
|
12470
|
-
granularity: granularity !== "day" ? granularity : void 0,
|
12471
|
-
value: state.timeValue,
|
12472
|
-
onChange: (value) => value && state.setTimeValue(value),
|
12473
|
-
reserveSpaceForError: false
|
12414
|
+
shouldCloseOnSelect: props.shouldCloseOnSelect ?? variant === "date",
|
12415
|
+
granularity: props.granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0)
|
12474
12416
|
}
|
12475
12417
|
);
|
12476
12418
|
};
|
12477
|
-
var
|
12478
|
-
const { labelProps, fieldProps } = (0, import_label2.useLabel)({ label: props.labelText });
|
12479
|
-
const errorMessageId = (0, import_utils24.useId)();
|
12480
|
-
const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
|
12481
|
-
const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
|
12482
|
-
const baseProps = (0, import_lodash_es33.omit)(props, Object.keys(labelControlProps));
|
12483
|
-
const allProps = { ...baseProps, ...fieldProps, ...errorProps, disabled: props.disabled, valid: props.valid };
|
12484
|
-
return /* @__PURE__ */ import_react95.default.createElement(LabelControl, { ...labelProps, ...labelControlProps, messageId: errorMessageId, className: "Aquarium-DatePicker" }, variant === "date" ? /* @__PURE__ */ import_react95.default.createElement(DatePickerBase, { ...allProps }) : /* @__PURE__ */ import_react95.default.createElement(DateTimePickerBase, { ...allProps }));
|
12485
|
-
};
|
12486
|
-
var DatePicker = createDatePicker("date");
|
12487
|
-
var DateTimePicker = createDatePicker("datetime");
|
12488
|
-
|
12489
|
-
// src/molecules/DatePicker/DateRangePicker.tsx
|
12490
|
-
var import_react97 = __toESM(require("react"));
|
12491
|
-
var import_react_aria_components14 = require("react-aria-components");
|
12492
|
-
var import_label3 = require("@react-aria/label");
|
12493
|
-
var import_utils26 = require("@react-aria/utils");
|
12494
|
-
var import_lodash_es34 = require("lodash-es");
|
12495
|
-
|
12496
|
-
// src/molecules/DatePicker/RangeCalendar.tsx
|
12497
|
-
var import_react96 = __toESM(require("react"));
|
12498
|
-
var import_react_aria_components13 = require("react-aria-components");
|
12499
|
-
var import_tailwind_variants10 = require("tailwind-variants");
|
12500
|
-
var cell = (0, import_tailwind_variants10.tv)({
|
12501
|
-
extend: focusRing,
|
12502
|
-
base: "w-full h-full flex items-center justify-center rounded-md text-default",
|
12503
|
-
variants: {
|
12504
|
-
selectionState: {
|
12505
|
-
none: "group-hover:bg-default group-pressed:bg-intense",
|
12506
|
-
middle: [
|
12507
|
-
"text-white",
|
12508
|
-
"group-hover:bg-primary-default",
|
12509
|
-
"group-invalid:group-hover:bg-danger-default",
|
12510
|
-
"group-pressed:bg-primary-intense",
|
12511
|
-
"group-invalid:group-pressed:bg-danger-intense"
|
12512
|
-
],
|
12513
|
-
cap: "text-white bg-primary-default group-invalid:bg-danger-default"
|
12514
|
-
},
|
12515
|
-
isUnavailable: {
|
12516
|
-
true: "text-inactive"
|
12517
|
-
},
|
12518
|
-
isDisabled: {
|
12519
|
-
true: "text-inactive"
|
12520
|
-
}
|
12521
|
-
}
|
12522
|
-
});
|
12523
|
-
function RangeCalendar(props) {
|
12524
|
-
return /* @__PURE__ */ import_react96.default.createElement(import_react_aria_components13.RangeCalendar, { ...props }, /* @__PURE__ */ import_react96.default.createElement(CalendarHeader, null), /* @__PURE__ */ import_react96.default.createElement(import_react_aria_components13.CalendarGrid, { className: "[&_td]:px-0" }, /* @__PURE__ */ import_react96.default.createElement(CalendarGridHeader, null), /* @__PURE__ */ import_react96.default.createElement(import_react_aria_components13.CalendarGridBody, null, (date) => /* @__PURE__ */ import_react96.default.createElement(
|
12525
|
-
import_react_aria_components13.CalendarCell,
|
12526
|
-
{
|
12527
|
-
date,
|
12528
|
-
className: tw(
|
12529
|
-
"group w-8 h-8 typography-small outline outline-0 cursor-default",
|
12530
|
-
"outside-month:hidden selected:bg-primary-default",
|
12531
|
-
"invalid:selected:bg-danger-default",
|
12532
|
-
"selection-start:rounded-s-md selection-end:rounded-e-md"
|
12533
|
-
)
|
12534
|
-
},
|
12535
|
-
({ formattedDate, isSelected, isSelectionStart, isSelectionEnd, ...rest }) => /* @__PURE__ */ import_react96.default.createElement(
|
12536
|
-
"span",
|
12537
|
-
{
|
12538
|
-
className: cell({
|
12539
|
-
selectionState: isSelected && (isSelectionStart || isSelectionEnd) ? "cap" : isSelected ? "middle" : "none",
|
12540
|
-
...rest
|
12541
|
-
})
|
12542
|
-
},
|
12543
|
-
formattedDate
|
12544
|
-
)
|
12545
|
-
))));
|
12546
|
-
}
|
12547
|
-
|
12548
|
-
// src/molecules/DatePicker/DateRangePicker.tsx
|
12549
|
-
function DateRangePickerClearButton() {
|
12550
|
-
const state = import_react97.default.useContext(import_react_aria_components14.DateRangePickerStateContext);
|
12551
|
-
if (!state) {
|
12552
|
-
throw new Error("DateRangePickerStateContext is missing a provider");
|
12553
|
-
}
|
12554
|
-
if (!state.value.start && !state.value.end) {
|
12555
|
-
return null;
|
12556
|
-
}
|
12557
|
-
return /* @__PURE__ */ import_react97.default.createElement(
|
12558
|
-
ClearInputButton,
|
12559
|
-
{
|
12560
|
-
onPress: () => {
|
12561
|
-
state.setValue(null);
|
12562
|
-
}
|
12563
|
-
}
|
12564
|
-
);
|
12565
|
-
}
|
12566
|
-
var createDateRangePickerBase = (variant) => ({
|
12567
|
-
disabled,
|
12568
|
-
valid,
|
12569
|
-
granularity,
|
12570
|
-
shouldCloseOnSelect,
|
12571
|
-
errorMessage,
|
12572
|
-
clearSelectionEnabled = true,
|
12573
|
-
...props
|
12574
|
-
}) => {
|
12419
|
+
var DateRangePicker = ({ variant, ...props }) => {
|
12575
12420
|
const hasSomeValue = props.value ?? props.defaultValue ?? props.placeholderValue;
|
12576
|
-
return /* @__PURE__ */
|
12577
|
-
|
12421
|
+
return /* @__PURE__ */ import_react93.default.createElement(
|
12422
|
+
import_react_aria_components9.DateRangePicker,
|
12578
12423
|
{
|
12579
12424
|
...props,
|
12580
|
-
shouldCloseOnSelect: shouldCloseOnSelect ?? variant === "date",
|
12581
|
-
|
12582
|
-
isInvalid: valid === false,
|
12583
|
-
granularity: granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0),
|
12584
|
-
className: tw("group flex flex-col gap-1")
|
12585
|
-
},
|
12586
|
-
/* @__PURE__ */ import_react97.default.createElement(FieldGroup, { className: tw("min-w-[200px] w-auto gap-2") }, /* @__PURE__ */ import_react97.default.createElement(DateInput, { slot: "start", className: tw("px-2 py-1") }), /* @__PURE__ */ import_react97.default.createElement("span", { "aria-hidden": true, className: tw("text-muted") }, "-"), /* @__PURE__ */ import_react97.default.createElement(DateInput, { slot: "end", className: tw("flex-1 px-2 py-1") }), /* @__PURE__ */ import_react97.default.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react97.default.createElement(DateRangePickerClearButton, null), /* @__PURE__ */ import_react97.default.createElement(CalendarButton, null))),
|
12587
|
-
/* @__PURE__ */ import_react97.default.createElement(Popover2, { offset: 0 }, /* @__PURE__ */ import_react97.default.createElement(Dialog, null, /* @__PURE__ */ import_react97.default.createElement(Spacing, { gap: "3" }, /* @__PURE__ */ import_react97.default.createElement(RangeCalendar, null), variant === "datetime" && /* @__PURE__ */ import_react97.default.createElement(Box.Flex, { gap: "6" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ import_react97.default.createElement(PickerTimeField2, { granularity, part: "start" })), /* @__PURE__ */ import_react97.default.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ import_react97.default.createElement(PickerTimeField2, { granularity, part: "end" }))), errorMessage && /* @__PURE__ */ import_react97.default.createElement(import_react_aria_components14.Text, { slot: "errorMessage", className: tw("typography-caption text-danger-default max-w-[300px]") }, errorMessage))))
|
12588
|
-
);
|
12589
|
-
};
|
12590
|
-
var PickerTimeField2 = ({ granularity, part }) => {
|
12591
|
-
const ctx = import_react97.default.useContext(import_react_aria_components14.DateRangePickerStateContext);
|
12592
|
-
return /* @__PURE__ */ import_react97.default.createElement(
|
12593
|
-
TimeField,
|
12594
|
-
{
|
12595
|
-
labelText: part === "start" ? "Start time" : "End time",
|
12596
|
-
granularity: granularity !== "day" ? granularity : void 0,
|
12597
|
-
value: ctx?.timeRange?.[part] ?? null,
|
12598
|
-
onChange: (value) => ctx?.setTime(part, value),
|
12599
|
-
reserveSpaceForError: false
|
12425
|
+
shouldCloseOnSelect: props.shouldCloseOnSelect ?? variant === "date",
|
12426
|
+
granularity: props.granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0)
|
12600
12427
|
}
|
12601
12428
|
);
|
12602
12429
|
};
|
12603
|
-
var
|
12604
|
-
|
12605
|
-
|
12606
|
-
|
12607
|
-
|
12608
|
-
const
|
12609
|
-
const
|
12610
|
-
const
|
12611
|
-
|
12612
|
-
|
12430
|
+
var Presets = ({ children }) => {
|
12431
|
+
const { presets } = datePickerCalendarStyles();
|
12432
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: presets() }, children);
|
12433
|
+
};
|
12434
|
+
var Preset = ({ value, label }) => {
|
12435
|
+
const { preset } = datePickerCalendarStyles();
|
12436
|
+
const context2 = import_react93.default.useContext(import_react_aria_components9.DatePickerStateContext);
|
12437
|
+
const handlePress = () => {
|
12438
|
+
context2?.setValue(value);
|
12439
|
+
context2?.close();
|
12440
|
+
};
|
12441
|
+
const isActive = context2?.value !== void 0 && context2.value?.toString() === value.toString();
|
12442
|
+
return /* @__PURE__ */ import_react93.default.createElement(import_react_aria_components9.Button, { onPress: handlePress, className: preset({ isPresetActive: isActive }) }, label);
|
12443
|
+
};
|
12444
|
+
var RangePreset = ({ value, label }) => {
|
12445
|
+
const { preset } = datePickerCalendarStyles();
|
12446
|
+
const context2 = import_react93.default.useContext(import_react_aria_components9.DateRangePickerStateContext);
|
12447
|
+
const handlePress = () => {
|
12448
|
+
context2?.setValue(value);
|
12449
|
+
context2?.close();
|
12450
|
+
};
|
12451
|
+
const isActive = context2?.value !== void 0 && context2.value.start?.toString() === value.start.toString() && context2.value.end?.toString() === value.end.toString();
|
12452
|
+
return /* @__PURE__ */ import_react93.default.createElement(import_react_aria_components9.Button, { onPress: handlePress, className: preset({ isPresetActive: isActive }) }, label);
|
12613
12453
|
};
|
12614
|
-
var DateRangePicker = createDateRangePicker("date");
|
12615
|
-
var DateTimeRangePicker = createDateRangePicker("datetime");
|
12616
|
-
|
12617
|
-
// src/molecules/Dialog/Dialog.tsx
|
12618
|
-
var import_react100 = __toESM(require("react"));
|
12619
|
-
var import_dialog = require("@react-aria/dialog");
|
12620
|
-
var import_overlays6 = require("@react-aria/overlays");
|
12621
|
-
var import_utils27 = require("@react-aria/utils");
|
12622
|
-
var import_overlays7 = require("@react-stately/overlays");
|
12623
|
-
var import_lodash_es35 = require("lodash-es");
|
12624
12454
|
|
12625
12455
|
// src/atoms/Dialog/Dialog.tsx
|
12626
|
-
var
|
12627
|
-
var
|
12456
|
+
var import_react94 = __toESM(require("react"));
|
12457
|
+
var import_react_aria_components10 = require("react-aria-components");
|
12628
12458
|
|
12629
12459
|
// node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
12630
12460
|
var CLASS_PART_SEPARATOR = "-";
|
@@ -15104,9 +14934,9 @@ var DIALOG_ICONS_AND_COLORS = {
|
|
15104
14934
|
color: "danger-default"
|
15105
14935
|
}
|
15106
14936
|
};
|
15107
|
-
var
|
15108
|
-
return /* @__PURE__ */
|
15109
|
-
|
14937
|
+
var Dialog = (props) => {
|
14938
|
+
return /* @__PURE__ */ import_react94.default.createElement(
|
14939
|
+
import_react_aria_components10.Dialog,
|
15110
14940
|
{
|
15111
14941
|
...props,
|
15112
14942
|
className: twMerge("outline outline-0 max-h-[inherit] overflow-auto relative", props.className)
|
@@ -15114,10 +14944,257 @@ var Dialog2 = (props) => {
|
|
15114
14944
|
);
|
15115
14945
|
};
|
15116
14946
|
|
15117
|
-
// src/
|
14947
|
+
// src/molecules/DatePicker/DatePicker.tsx
|
14948
|
+
var DatePickerClearButton = () => {
|
14949
|
+
const state = import_react95.default.useContext(import_react_aria_components11.DatePickerStateContext);
|
14950
|
+
if (!state) {
|
14951
|
+
throw new Error("DatePickerStateContext is missing a provider");
|
14952
|
+
}
|
14953
|
+
if (!state.value) {
|
14954
|
+
return null;
|
14955
|
+
}
|
14956
|
+
return /* @__PURE__ */ import_react95.default.createElement(
|
14957
|
+
ClearInputButton,
|
14958
|
+
{
|
14959
|
+
onPress: () => {
|
14960
|
+
state.setValue(null);
|
14961
|
+
}
|
14962
|
+
}
|
14963
|
+
);
|
14964
|
+
};
|
14965
|
+
DatePickerClearButton.displayName = "DatePicker.ClearButton";
|
14966
|
+
var CalendarTimeField = ({ granularity, labelText = "Time", ...props }) => {
|
14967
|
+
const ctx = import_react95.default.useContext(import_react_aria_components11.DatePickerStateContext);
|
14968
|
+
return /* @__PURE__ */ import_react95.default.createElement(
|
14969
|
+
TimeField2,
|
14970
|
+
{
|
14971
|
+
...props,
|
14972
|
+
labelText,
|
14973
|
+
granularity: granularity !== "day" ? granularity : void 0,
|
14974
|
+
value: ctx?.timeValue,
|
14975
|
+
onChange: (value) => value && ctx?.setTimeValue(value),
|
14976
|
+
reserveSpaceForError: false
|
14977
|
+
}
|
14978
|
+
);
|
14979
|
+
};
|
14980
|
+
var DatePickerCalendarPropsContext = import_react95.default.createContext(null);
|
14981
|
+
var DatePickerCalendar = (props) => {
|
14982
|
+
const ctx = import_react95.default.useContext(DatePickerCalendarPropsContext);
|
14983
|
+
const { variant, granularity, errorMessage, presets = [] } = (0, import_utils24.mergeProps)(ctx, props);
|
14984
|
+
const { dialog, calendar, errorMessage: errorMessageStyle } = datePickerCalendarStyles();
|
14985
|
+
return /* @__PURE__ */ import_react95.default.createElement(Popover, { offset: 0 }, /* @__PURE__ */ import_react95.default.createElement(Dialog, { className: dialog() }, presets.length > 0 && /* @__PURE__ */ import_react95.default.createElement(Presets, null, presets.map((props2) => /* @__PURE__ */ import_react95.default.createElement(Preset, { key: props2.value.toString(), ...props2 }))), /* @__PURE__ */ import_react95.default.createElement(Spacing, { gap: "3", className: tw("p-5") }, /* @__PURE__ */ import_react95.default.createElement(Calendar, { className: calendar() }), variant === "datetime" && /* @__PURE__ */ import_react95.default.createElement(CalendarTimeField, { granularity }), errorMessage && /* @__PURE__ */ import_react95.default.createElement(import_react_aria_components11.Text, { slot: "errorMessage", className: errorMessageStyle() }, errorMessage))));
|
14986
|
+
};
|
14987
|
+
DatePickerCalendar.displayName = "DatePicker.Calendar";
|
14988
|
+
var DatePickerField = ({ clearSelectionEnabled = true, disabled = false }) => {
|
14989
|
+
return /* @__PURE__ */ import_react95.default.createElement(FieldGroup, { className: tw("min-w-[210px] w-auto") }, /* @__PURE__ */ import_react95.default.createElement(DateInput, { className: tw("flex-1") }), /* @__PURE__ */ import_react95.default.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react95.default.createElement(DatePickerClearButton, null), /* @__PURE__ */ import_react95.default.createElement(CalendarButton, null)));
|
14990
|
+
};
|
14991
|
+
DatePickerField.displayName = "DatePicker.Field";
|
14992
|
+
var createDatePickerBase = (variant) => {
|
14993
|
+
const datePicker = ({
|
14994
|
+
disabled,
|
14995
|
+
valid,
|
14996
|
+
shouldCloseOnSelect,
|
14997
|
+
errorMessage,
|
14998
|
+
clearSelectionEnabled = true,
|
14999
|
+
presets,
|
15000
|
+
children,
|
15001
|
+
...props
|
15002
|
+
}) => {
|
15003
|
+
const content = children ?? /* @__PURE__ */ import_react95.default.createElement(import_react95.default.Fragment, null, /* @__PURE__ */ import_react95.default.createElement(DatePickerField, { clearSelectionEnabled, disabled }), /* @__PURE__ */ import_react95.default.createElement(DatePickerCalendar, null));
|
15004
|
+
return /* @__PURE__ */ import_react95.default.createElement(
|
15005
|
+
DatePickerCalendarPropsContext.Provider,
|
15006
|
+
{
|
15007
|
+
value: { variant, granularity: props.granularity, errorMessage, presets }
|
15008
|
+
},
|
15009
|
+
/* @__PURE__ */ import_react95.default.createElement(DatePicker, { ...props, variant, isDisabled: disabled, isInvalid: valid === false }, content)
|
15010
|
+
);
|
15011
|
+
};
|
15012
|
+
datePicker.Calendar = DatePickerCalendar;
|
15013
|
+
datePicker.Field = DatePickerField;
|
15014
|
+
datePicker.displayName = variant === "date" ? "DatePickerBase" : "DateTimePickerBase";
|
15015
|
+
return datePicker;
|
15016
|
+
};
|
15017
|
+
var DatePickerBase = createDatePickerBase("date");
|
15018
|
+
var DateTimePickerBase = createDatePickerBase("datetime");
|
15019
|
+
var createDatePicker = (variant) => {
|
15020
|
+
const datePicker = (props) => {
|
15021
|
+
const { labelProps, fieldProps } = (0, import_label2.useLabel)({ "label": props.labelText, "aria-label": props["aria-label"] });
|
15022
|
+
const errorMessageId = (0, import_utils24.useId)();
|
15023
|
+
const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
|
15024
|
+
const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
|
15025
|
+
const baseProps = (0, import_lodash_es33.omit)(props, Object.keys(labelControlProps));
|
15026
|
+
const allProps = { ...baseProps, ...fieldProps, ...errorProps, disabled: props.disabled, valid: props.valid };
|
15027
|
+
return /* @__PURE__ */ import_react95.default.createElement(LabelControl, { ...labelProps, ...labelControlProps, messageId: errorMessageId, className: "Aquarium-DatePicker" }, variant === "date" ? /* @__PURE__ */ import_react95.default.createElement(DatePickerBase, { ...allProps }) : /* @__PURE__ */ import_react95.default.createElement(DateTimePickerBase, { ...allProps }));
|
15028
|
+
};
|
15029
|
+
datePicker.Calendar = DatePickerCalendar;
|
15030
|
+
datePicker.Field = DatePickerField;
|
15031
|
+
datePicker.displayName = variant === "date" ? "DatePicker" : "DateTimePicker";
|
15032
|
+
return datePicker;
|
15033
|
+
};
|
15034
|
+
var DatePicker2 = createDatePicker("date");
|
15035
|
+
var DateTimePicker = createDatePicker("datetime");
|
15036
|
+
|
15037
|
+
// src/molecules/DatePicker/DateRangePicker.tsx
|
15038
|
+
var import_react97 = __toESM(require("react"));
|
15039
|
+
var import_react_aria_components13 = require("react-aria-components");
|
15040
|
+
var import_label3 = require("@react-aria/label");
|
15041
|
+
var import_utils26 = require("@react-aria/utils");
|
15042
|
+
var import_lodash_es34 = require("lodash-es");
|
15043
|
+
|
15044
|
+
// src/atoms/DatePicker/RangeCalendar.tsx
|
15045
|
+
var import_react96 = __toESM(require("react"));
|
15046
|
+
var import_react_aria_components12 = require("react-aria-components");
|
15047
|
+
var import_tailwind_variants12 = require("tailwind-variants");
|
15048
|
+
var cell = (0, import_tailwind_variants12.tv)({
|
15049
|
+
extend: focusRing,
|
15050
|
+
base: "w-full h-full flex items-center justify-center rounded-md text-default",
|
15051
|
+
variants: {
|
15052
|
+
selectionState: {
|
15053
|
+
none: "group-hover:bg-default group-pressed:bg-intense",
|
15054
|
+
middle: [
|
15055
|
+
"text-white",
|
15056
|
+
"group-hover:bg-primary-default",
|
15057
|
+
"group-invalid:group-hover:bg-danger-default",
|
15058
|
+
"group-pressed:bg-primary-intense",
|
15059
|
+
"group-invalid:group-pressed:bg-danger-intense"
|
15060
|
+
],
|
15061
|
+
cap: "text-white bg-primary-default group-invalid:bg-danger-default"
|
15062
|
+
},
|
15063
|
+
isUnavailable: {
|
15064
|
+
true: "text-inactive"
|
15065
|
+
},
|
15066
|
+
isDisabled: {
|
15067
|
+
true: "text-inactive"
|
15068
|
+
}
|
15069
|
+
}
|
15070
|
+
});
|
15071
|
+
function RangeCalendar(props) {
|
15072
|
+
return /* @__PURE__ */ import_react96.default.createElement(import_react_aria_components12.RangeCalendar, { ...props }, /* @__PURE__ */ import_react96.default.createElement(CalendarHeader, null), /* @__PURE__ */ import_react96.default.createElement(import_react_aria_components12.CalendarGrid, { className: "[&_td]:px-0" }, /* @__PURE__ */ import_react96.default.createElement(CalendarGridHeader, null), /* @__PURE__ */ import_react96.default.createElement(import_react_aria_components12.CalendarGridBody, null, (date) => /* @__PURE__ */ import_react96.default.createElement(
|
15073
|
+
import_react_aria_components12.CalendarCell,
|
15074
|
+
{
|
15075
|
+
date,
|
15076
|
+
className: tw(
|
15077
|
+
"group w-8 h-8 typography-small outline outline-0 cursor-default",
|
15078
|
+
"outside-month:hidden selected:bg-primary-default",
|
15079
|
+
"invalid:selected:bg-danger-default",
|
15080
|
+
"selection-start:rounded-s-md selection-end:rounded-e-md"
|
15081
|
+
)
|
15082
|
+
},
|
15083
|
+
({ formattedDate, isSelected, isSelectionStart, isSelectionEnd, ...rest }) => /* @__PURE__ */ import_react96.default.createElement(
|
15084
|
+
"span",
|
15085
|
+
{
|
15086
|
+
className: cell({
|
15087
|
+
selectionState: isSelected && (isSelectionStart || isSelectionEnd) ? "cap" : isSelected ? "middle" : "none",
|
15088
|
+
...rest
|
15089
|
+
})
|
15090
|
+
},
|
15091
|
+
formattedDate
|
15092
|
+
)
|
15093
|
+
))));
|
15094
|
+
}
|
15095
|
+
|
15096
|
+
// src/molecules/DatePicker/DateRangePicker.tsx
|
15097
|
+
function DateRangePickerClearButton() {
|
15098
|
+
const state = import_react97.default.useContext(import_react_aria_components13.DateRangePickerStateContext);
|
15099
|
+
if (!state) {
|
15100
|
+
throw new Error("DateRangePickerStateContext is missing a provider");
|
15101
|
+
}
|
15102
|
+
if (!state.value.start && !state.value.end) {
|
15103
|
+
return null;
|
15104
|
+
}
|
15105
|
+
return /* @__PURE__ */ import_react97.default.createElement(
|
15106
|
+
ClearInputButton,
|
15107
|
+
{
|
15108
|
+
onPress: () => {
|
15109
|
+
state.setValue(null);
|
15110
|
+
}
|
15111
|
+
}
|
15112
|
+
);
|
15113
|
+
}
|
15114
|
+
var RangeCalendarTimeField = ({ granularity, part, ...props }) => {
|
15115
|
+
const ctx = import_react97.default.useContext(import_react_aria_components13.DateRangePickerStateContext);
|
15116
|
+
const labelText = props.labelText ?? (part === "start" ? "Start time" : "End time");
|
15117
|
+
return /* @__PURE__ */ import_react97.default.createElement(
|
15118
|
+
TimeField2,
|
15119
|
+
{
|
15120
|
+
...props,
|
15121
|
+
labelText,
|
15122
|
+
granularity: granularity !== "day" ? granularity : void 0,
|
15123
|
+
value: ctx?.timeRange?.[part] ?? null,
|
15124
|
+
onChange: (value) => ctx?.setTime(part, value),
|
15125
|
+
reserveSpaceForError: false
|
15126
|
+
}
|
15127
|
+
);
|
15128
|
+
};
|
15129
|
+
var DateRangePickerCalendarPropsContext = import_react97.default.createContext(null);
|
15130
|
+
var DateRangePickerCalendar = (props) => {
|
15131
|
+
const ctx = import_react97.default.useContext(DateRangePickerCalendarPropsContext);
|
15132
|
+
const { variant, granularity, errorMessage, presets = [] } = (0, import_utils26.mergeProps)(ctx, props);
|
15133
|
+
const { dialog, calendar, errorMessage: errorMessageStyle } = datePickerCalendarStyles();
|
15134
|
+
return /* @__PURE__ */ import_react97.default.createElement(Popover, { offset: 0 }, /* @__PURE__ */ import_react97.default.createElement(Dialog, { className: dialog() }, presets.length > 0 && /* @__PURE__ */ import_react97.default.createElement(Presets, null, presets.map((props2) => /* @__PURE__ */ import_react97.default.createElement(RangePreset, { key: `${props2.value.start.toString()}-${props2.value.end.toString()}`, ...props2 }))), /* @__PURE__ */ import_react97.default.createElement(Spacing, { gap: "3", className: tw("p-5") }, /* @__PURE__ */ import_react97.default.createElement(RangeCalendar, { className: calendar() }), variant === "datetime" && /* @__PURE__ */ import_react97.default.createElement(Box.Flex, { gap: "6" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ import_react97.default.createElement(RangeCalendarTimeField, { granularity, part: "start" })), /* @__PURE__ */ import_react97.default.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ import_react97.default.createElement(RangeCalendarTimeField, { granularity, part: "end" }))), errorMessage && /* @__PURE__ */ import_react97.default.createElement(import_react_aria_components13.Text, { slot: "errorMessage", className: errorMessageStyle() }, errorMessage))));
|
15135
|
+
};
|
15136
|
+
DateRangePickerCalendar.displayName = "DateRangePicker.Calendar";
|
15137
|
+
var DateRangePickerField = ({ clearSelectionEnabled = true, disabled = false }) => {
|
15138
|
+
return /* @__PURE__ */ import_react97.default.createElement(FieldGroup, { className: tw("min-w-[200px] w-auto gap-2") }, /* @__PURE__ */ import_react97.default.createElement(DateInput, { slot: "start", className: tw("px-2 py-1") }), /* @__PURE__ */ import_react97.default.createElement("span", { "aria-hidden": true, className: tw("text-muted") }, "-"), /* @__PURE__ */ import_react97.default.createElement(DateInput, { slot: "end", className: tw("flex-1 px-2 py-1") }), /* @__PURE__ */ import_react97.default.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react97.default.createElement(DateRangePickerClearButton, null), /* @__PURE__ */ import_react97.default.createElement(CalendarButton, null)));
|
15139
|
+
};
|
15140
|
+
DateRangePickerField.displayName = "DateRangePicker.Field";
|
15141
|
+
var createDateRangePickerBase = (variant) => {
|
15142
|
+
const dateRangePicker = ({
|
15143
|
+
disabled,
|
15144
|
+
valid,
|
15145
|
+
shouldCloseOnSelect,
|
15146
|
+
errorMessage,
|
15147
|
+
clearSelectionEnabled = true,
|
15148
|
+
presets,
|
15149
|
+
children,
|
15150
|
+
...props
|
15151
|
+
}) => {
|
15152
|
+
const content = children ?? /* @__PURE__ */ import_react97.default.createElement(import_react97.default.Fragment, null, /* @__PURE__ */ import_react97.default.createElement(DateRangePickerField, { clearSelectionEnabled, disabled }), /* @__PURE__ */ import_react97.default.createElement(DateRangePickerCalendar, { variant, granularity: props.granularity, errorMessage }));
|
15153
|
+
return /* @__PURE__ */ import_react97.default.createElement(
|
15154
|
+
DateRangePickerCalendarPropsContext.Provider,
|
15155
|
+
{
|
15156
|
+
value: { variant, granularity: props.granularity, errorMessage, presets }
|
15157
|
+
},
|
15158
|
+
/* @__PURE__ */ import_react97.default.createElement(DateRangePicker, { ...props, variant, isDisabled: disabled, isInvalid: valid === false }, content)
|
15159
|
+
);
|
15160
|
+
};
|
15161
|
+
dateRangePicker.Calendar = DateRangePickerCalendar;
|
15162
|
+
dateRangePicker.Field = DateRangePickerField;
|
15163
|
+
dateRangePicker.displayName = variant === "date" ? "DateRangePickerBase" : "DateTimeRangePickerBase";
|
15164
|
+
return dateRangePicker;
|
15165
|
+
};
|
15166
|
+
var DateRangePickerBase = createDateRangePickerBase("date");
|
15167
|
+
var DateTimeRangePickerBase = createDateRangePickerBase("datetime");
|
15168
|
+
var createDateRangePicker = (variant) => {
|
15169
|
+
const dateRangePicker = (props) => {
|
15170
|
+
const { labelProps, fieldProps } = (0, import_label3.useLabel)({ "label": props.labelText, "aria-label": props["aria-label"] });
|
15171
|
+
const errorMessageId = (0, import_utils26.useId)();
|
15172
|
+
const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
|
15173
|
+
const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
|
15174
|
+
const baseProps = (0, import_lodash_es34.omit)(props, Object.keys(labelControlProps));
|
15175
|
+
const allProps = { ...baseProps, ...fieldProps, ...errorProps, disabled: props.disabled, valid: props.valid };
|
15176
|
+
return /* @__PURE__ */ import_react97.default.createElement(LabelControl, { ...labelProps, ...labelControlProps, messageId: errorMessageId, className: "Aquarium-DatePicker" }, variant === "date" ? /* @__PURE__ */ import_react97.default.createElement(DateRangePickerBase, { ...allProps }) : /* @__PURE__ */ import_react97.default.createElement(DateTimeRangePickerBase, { ...allProps }));
|
15177
|
+
};
|
15178
|
+
dateRangePicker.Calendar = DateRangePickerCalendar;
|
15179
|
+
dateRangePicker.Field = DateRangePickerField;
|
15180
|
+
dateRangePicker.displayName = variant === "date" ? "DateRangePicker" : "DateTimeRangePicker";
|
15181
|
+
return dateRangePicker;
|
15182
|
+
};
|
15183
|
+
var DateRangePicker2 = createDateRangePicker("date");
|
15184
|
+
var DateTimeRangePicker = createDateRangePicker("datetime");
|
15185
|
+
|
15186
|
+
// src/molecules/Dialog/Dialog.tsx
|
15118
15187
|
var import_react99 = __toESM(require("react"));
|
15119
|
-
var
|
15120
|
-
var
|
15188
|
+
var import_dialog = require("@react-aria/dialog");
|
15189
|
+
var import_overlays6 = require("@react-aria/overlays");
|
15190
|
+
var import_utils27 = require("@react-aria/utils");
|
15191
|
+
var import_overlays7 = require("@react-stately/overlays");
|
15192
|
+
var import_lodash_es35 = require("lodash-es");
|
15193
|
+
|
15194
|
+
// src/atoms/Modal/Modal.tsx
|
15195
|
+
var import_react98 = __toESM(require("react"));
|
15196
|
+
var import_tailwind_variants13 = require("tailwind-variants");
|
15197
|
+
var modalStyles = (0, import_tailwind_variants13.tv)({
|
15121
15198
|
slots: {
|
15122
15199
|
overlay: "inset-0 overflow-y-auto z-modal fixed",
|
15123
15200
|
backdrop: "-z-10 fixed min-w-full min-h-full bg-body-intense opacity-70",
|
@@ -15220,55 +15297,55 @@ var Modal = ({
|
|
15220
15297
|
...rest
|
15221
15298
|
}) => {
|
15222
15299
|
const { overlay } = modalStyles({ kind });
|
15223
|
-
return open ? /* @__PURE__ */
|
15300
|
+
return open ? /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: overlay({ className }) }, children) : null;
|
15224
15301
|
};
|
15225
15302
|
Modal.BackDrop = ({ className, ...rest }) => {
|
15226
15303
|
const { backdrop } = modalStyles();
|
15227
|
-
return /* @__PURE__ */
|
15304
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: backdrop({ className }) });
|
15228
15305
|
};
|
15229
|
-
Modal.Dialog =
|
15306
|
+
Modal.Dialog = import_react98.default.forwardRef(
|
15230
15307
|
({ kind = "dialog", children, className, size = "md", ...rest }, ref) => {
|
15231
15308
|
const { dialog } = modalStyles({ kind, size });
|
15232
|
-
return /* @__PURE__ */
|
15309
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ref, "aria-modal": "true", ...rest, className: dialog({ className }) }, children);
|
15233
15310
|
}
|
15234
15311
|
);
|
15235
15312
|
Modal.Header = ({ kind = "dialog", size = "md", children, className, ...rest }) => {
|
15236
15313
|
const { header } = modalStyles({ kind, size });
|
15237
|
-
return /* @__PURE__ */
|
15314
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: header({ className }) }, children);
|
15238
15315
|
};
|
15239
15316
|
Modal.HeaderImage = ({ backgroundImage, className, ...rest }) => {
|
15240
15317
|
const { headerImage } = modalStyles({ backgroundImage: Boolean(backgroundImage) });
|
15241
|
-
return backgroundImage ? /* @__PURE__ */
|
15318
|
+
return backgroundImage ? /* @__PURE__ */ import_react98.default.createElement("img", { "aria-hidden": true, src: backgroundImage, ...rest, className: headerImage({ className }) }) : /* @__PURE__ */ import_react98.default.createElement("div", { className: headerImage({ className }) });
|
15242
15319
|
};
|
15243
15320
|
Modal.CloseButtonContainer = ({ className, ...rest }) => {
|
15244
15321
|
const { closeButtonContainer } = modalStyles();
|
15245
|
-
return /* @__PURE__ */
|
15322
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: closeButtonContainer({ className }) });
|
15246
15323
|
};
|
15247
15324
|
Modal.Title = ({ kind = "dialog", children, className, ...rest }) => {
|
15248
15325
|
const { title } = modalStyles({ kind });
|
15249
|
-
return /* @__PURE__ */
|
15326
|
+
return /* @__PURE__ */ import_react98.default.createElement(Typography, { htmlTag: "h2", variant: "subheading", color: "intense", className: title({ className }), ...rest }, children);
|
15250
15327
|
};
|
15251
|
-
Modal.Subtitle = ({ children, ...rest }) => /* @__PURE__ */
|
15328
|
+
Modal.Subtitle = ({ children, ...rest }) => /* @__PURE__ */ import_react98.default.createElement(Typography, { variant: "small", color: "default", ...rest }, children);
|
15252
15329
|
Modal.TitleContainer = ({ children, className, ...rest }) => {
|
15253
15330
|
const { titleContainer } = modalStyles();
|
15254
|
-
return /* @__PURE__ */
|
15331
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: titleContainer({ className }) }, children);
|
15255
15332
|
};
|
15256
15333
|
Modal.Body = ({ children, className, noFooter = false, maxHeight, style, ...rest }) => {
|
15257
15334
|
const { body } = modalStyles();
|
15258
|
-
return /* @__PURE__ */
|
15335
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: body({ noFooter, className }), style: { maxHeight, ...style } }, children);
|
15259
15336
|
};
|
15260
15337
|
Modal.Footer = ({ children, className, ...rest }) => {
|
15261
15338
|
const { footer } = modalStyles();
|
15262
|
-
return /* @__PURE__ */
|
15339
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: footer({ className }) }, children);
|
15263
15340
|
};
|
15264
15341
|
Modal.Actions = ({ children, className, ...rest }) => {
|
15265
15342
|
const { actions } = modalStyles();
|
15266
|
-
return /* @__PURE__ */
|
15343
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: actions({ className }) }, children);
|
15267
15344
|
};
|
15268
15345
|
|
15269
15346
|
// src/molecules/Dialog/Dialog.tsx
|
15270
|
-
var
|
15271
|
-
const ref =
|
15347
|
+
var Dialog2 = (props) => {
|
15348
|
+
const ref = import_react99.default.useRef(null);
|
15272
15349
|
const { open, onClose } = props;
|
15273
15350
|
const state = (0, import_overlays7.useOverlayTriggerState)({ isOpen: open, onOpenChange: (isOpen) => !isOpen && onClose?.() });
|
15274
15351
|
const { modalProps, underlayProps } = (0, import_overlays6.useModalOverlay)(
|
@@ -15279,7 +15356,7 @@ var Dialog3 = (props) => {
|
|
15279
15356
|
if (!state.isOpen) {
|
15280
15357
|
return null;
|
15281
15358
|
}
|
15282
|
-
return /* @__PURE__ */
|
15359
|
+
return /* @__PURE__ */ import_react99.default.createElement(import_overlays6.Overlay, null, /* @__PURE__ */ import_react99.default.createElement(Modal, { className: "Aquarium-Dialog", open: true }, /* @__PURE__ */ import_react99.default.createElement(Modal.BackDrop, { ...underlayProps }), /* @__PURE__ */ import_react99.default.createElement(Modal.Dialog, { ref, size: "sm", ...modalProps }, /* @__PURE__ */ import_react99.default.createElement(DialogWrapper, { ...props }))));
|
15283
15360
|
};
|
15284
15361
|
var DialogWrapper = ({
|
15285
15362
|
title,
|
@@ -15288,7 +15365,7 @@ var DialogWrapper = ({
|
|
15288
15365
|
primaryAction,
|
15289
15366
|
secondaryAction
|
15290
15367
|
}) => {
|
15291
|
-
const ref =
|
15368
|
+
const ref = import_react99.default.useRef(null);
|
15292
15369
|
const labelledBy = (0, import_utils27.useId)();
|
15293
15370
|
const describedBy = (0, import_utils27.useId)();
|
15294
15371
|
const { dialogProps } = (0, import_dialog.useDialog)(
|
@@ -15299,35 +15376,35 @@ var DialogWrapper = ({
|
|
15299
15376
|
},
|
15300
15377
|
ref
|
15301
15378
|
);
|
15302
|
-
return /* @__PURE__ */
|
15379
|
+
return /* @__PURE__ */ import_react99.default.createElement("div", { ref, ...dialogProps, className: tw("outline-none") }, /* @__PURE__ */ import_react99.default.createElement(Modal.Header, { className: tw("icon-stroke-2") }, /* @__PURE__ */ import_react99.default.createElement(Icon, { icon: DIALOG_ICONS_AND_COLORS[type].icon, color: DIALOG_ICONS_AND_COLORS[type].color, fontSize: 20 }), /* @__PURE__ */ import_react99.default.createElement(Modal.Title, { id: labelledBy, variant: "large", color: DIALOG_ICONS_AND_COLORS[type].color }, title)), /* @__PURE__ */ import_react99.default.createElement(Modal.Body, { id: describedBy }, /* @__PURE__ */ import_react99.default.createElement(Typography2.Default, null, children)), /* @__PURE__ */ import_react99.default.createElement(Modal.Footer, null, /* @__PURE__ */ import_react99.default.createElement(Modal.Actions, null, secondaryAction && /* @__PURE__ */ import_react99.default.createElement(Button2.Ghost, { key: secondaryAction.text, ...(0, import_lodash_es35.omit)(secondaryAction, "text") }, secondaryAction.text), /* @__PURE__ */ import_react99.default.createElement(Button2.Secondary, { key: primaryAction.text, ...(0, import_lodash_es35.omit)(primaryAction, "text") }, primaryAction.text))));
|
15303
15380
|
};
|
15304
15381
|
|
15305
15382
|
// src/molecules/Drawer/Drawer.tsx
|
15306
|
-
var
|
15307
|
-
var
|
15383
|
+
var import_react102 = __toESM(require("react"));
|
15384
|
+
var import_react_aria_components15 = require("react-aria-components");
|
15308
15385
|
var import_web5 = require("@react-spring/web");
|
15309
15386
|
var import_lodash_es37 = require("lodash-es");
|
15310
15387
|
|
15311
15388
|
// src/molecules/Modal/ModalTitle.tsx
|
15312
|
-
var
|
15313
|
-
var
|
15389
|
+
var import_react100 = __toESM(require("react"));
|
15390
|
+
var import_react_aria_components14 = require("react-aria-components");
|
15314
15391
|
var ModalTitle = ({ children, ...props }) => {
|
15315
|
-
const [ctxProps] = (0,
|
15316
|
-
return /* @__PURE__ */
|
15392
|
+
const [ctxProps] = (0, import_react_aria_components14.useContextProps)({ ...props, slot: "title" }, null, import_react_aria_components14.HeadingContext);
|
15393
|
+
return /* @__PURE__ */ import_react100.default.createElement(Modal.Title, { id: ctxProps.id, ...props }, children);
|
15317
15394
|
};
|
15318
15395
|
|
15319
15396
|
// src/molecules/Tabs/Tabs.tsx
|
15320
|
-
var
|
15397
|
+
var import_react101 = __toESM(require("react"));
|
15321
15398
|
var import_lodash_es36 = require("lodash-es");
|
15322
15399
|
var import_chevronLeft5 = __toESM(require_chevronLeft());
|
15323
15400
|
var import_chevronRight5 = __toESM(require_chevronRight());
|
15324
15401
|
var import_warningSign4 = __toESM(require_warningSign());
|
15325
15402
|
var isTabComponent = (c) => {
|
15326
|
-
return
|
15403
|
+
return import_react101.default.isValidElement(c) && (c.type === Tab || c.type === ModalTab);
|
15327
15404
|
};
|
15328
|
-
var Tab =
|
15405
|
+
var Tab = import_react101.default.forwardRef(
|
15329
15406
|
({ className, id, title, children }, ref) => {
|
15330
|
-
return /* @__PURE__ */
|
15407
|
+
return /* @__PURE__ */ import_react101.default.createElement(
|
15331
15408
|
"div",
|
15332
15409
|
{
|
15333
15410
|
ref,
|
@@ -15341,10 +15418,10 @@ var Tab = import_react102.default.forwardRef(
|
|
15341
15418
|
);
|
15342
15419
|
}
|
15343
15420
|
);
|
15344
|
-
var TabContainer = ({ className, children, ...rest }) => /* @__PURE__ */
|
15421
|
+
var TabContainer = ({ className, children, ...rest }) => /* @__PURE__ */ import_react101.default.createElement("div", { ...rest, className: classNames("py-6 z-0", className) }, children);
|
15345
15422
|
var ModalTab = Tab;
|
15346
15423
|
var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
15347
|
-
const Tab2 =
|
15424
|
+
const Tab2 = import_react101.default.forwardRef(
|
15348
15425
|
({
|
15349
15426
|
id,
|
15350
15427
|
value,
|
@@ -15363,11 +15440,11 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15363
15440
|
const _id = id ?? (0, import_lodash_es36.kebabCase)(title);
|
15364
15441
|
let statusIcon = void 0;
|
15365
15442
|
if (status === "warning") {
|
15366
|
-
statusIcon = /* @__PURE__ */
|
15443
|
+
statusIcon = /* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_warningSign4.default, color: selected ? void 0 : "warning-default" });
|
15367
15444
|
} else if (status === "error") {
|
15368
|
-
statusIcon = /* @__PURE__ */
|
15445
|
+
statusIcon = /* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_warningSign4.default, color: selected ? void 0 : "danger-default" });
|
15369
15446
|
}
|
15370
|
-
const tab = /* @__PURE__ */
|
15447
|
+
const tab = /* @__PURE__ */ import_react101.default.createElement(
|
15371
15448
|
Component,
|
15372
15449
|
{
|
15373
15450
|
ref,
|
@@ -15388,7 +15465,7 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15388
15465
|
tabIndex: disabled ? void 0 : 0,
|
15389
15466
|
...rest
|
15390
15467
|
},
|
15391
|
-
/* @__PURE__ */
|
15468
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
15392
15469
|
Typography2,
|
15393
15470
|
{
|
15394
15471
|
htmlTag: "div",
|
@@ -15396,8 +15473,8 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15396
15473
|
color: selected ? "primary-default" : disabled ? "default" : "current",
|
15397
15474
|
className: tw("inline-flex items-center gap-3")
|
15398
15475
|
},
|
15399
|
-
showNotification ? /* @__PURE__ */
|
15400
|
-
(0, import_lodash_es36.isNumber)(badge) && /* @__PURE__ */
|
15476
|
+
showNotification ? /* @__PURE__ */ import_react101.default.createElement(Badge.Notification, { right: "-4px", top: "3px" }, /* @__PURE__ */ import_react101.default.createElement("span", { className: tw("whitespace-nowrap") }, title)) : /* @__PURE__ */ import_react101.default.createElement("span", { className: tw("whitespace-nowrap") }, title),
|
15477
|
+
(0, import_lodash_es36.isNumber)(badge) && /* @__PURE__ */ import_react101.default.createElement(
|
15401
15478
|
Typography2,
|
15402
15479
|
{
|
15403
15480
|
htmlTag: "span",
|
@@ -15405,7 +15482,7 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15405
15482
|
color: selected ? "primary-intense" : "grey-5",
|
15406
15483
|
className: "leading-none"
|
15407
15484
|
},
|
15408
|
-
/* @__PURE__ */
|
15485
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
15409
15486
|
TabBadge,
|
15410
15487
|
{
|
15411
15488
|
kind: "filled",
|
@@ -15417,7 +15494,7 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15417
15494
|
statusIcon
|
15418
15495
|
)
|
15419
15496
|
);
|
15420
|
-
return tooltip ? /* @__PURE__ */
|
15497
|
+
return tooltip ? /* @__PURE__ */ import_react101.default.createElement(Tooltip, { content: tooltip }, tab) : tab;
|
15421
15498
|
}
|
15422
15499
|
);
|
15423
15500
|
Tab2.displayName = displayName;
|
@@ -15428,19 +15505,19 @@ var CARET_OFFSET = 24;
|
|
15428
15505
|
var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderChildren) => {
|
15429
15506
|
const Tabs2 = (props) => {
|
15430
15507
|
const { className, value, defaultValue, onChange, children } = props;
|
15431
|
-
const childArr =
|
15508
|
+
const childArr = import_react101.default.Children.toArray(children);
|
15432
15509
|
const firstTab = childArr[0];
|
15433
15510
|
const firstTabValue = isTabComponent(firstTab) ? firstTab.props.value : -1;
|
15434
|
-
const [selected, setSelected] = (0,
|
15435
|
-
const [leftCaret, showLeftCaret] = (0,
|
15436
|
-
const [rightCaret, showRightCaret] = (0,
|
15437
|
-
const parentRef = (0,
|
15438
|
-
const containerRef = (0,
|
15439
|
-
const tabsRef = (0,
|
15511
|
+
const [selected, setSelected] = (0, import_react101.useState)(value ?? defaultValue ?? firstTabValue ?? 0);
|
15512
|
+
const [leftCaret, showLeftCaret] = (0, import_react101.useState)(false);
|
15513
|
+
const [rightCaret, showRightCaret] = (0, import_react101.useState)(false);
|
15514
|
+
const parentRef = (0, import_react101.useRef)(null);
|
15515
|
+
const containerRef = (0, import_react101.useRef)(null);
|
15516
|
+
const tabsRef = (0, import_react101.useRef)(null);
|
15440
15517
|
const revealSelectedTab = ({ smooth }) => {
|
15441
15518
|
const container = containerRef.current;
|
15442
15519
|
const tabs = tabsRef.current;
|
15443
|
-
const values =
|
15520
|
+
const values = import_react101.default.Children.map(
|
15444
15521
|
children,
|
15445
15522
|
(tab, i) => tab?.props.value ?? i
|
15446
15523
|
);
|
@@ -15471,15 +15548,15 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15471
15548
|
showLeftCaret(hasLeftCaret);
|
15472
15549
|
showRightCaret(hasRightCaret);
|
15473
15550
|
};
|
15474
|
-
(0,
|
15551
|
+
(0, import_react101.useEffect)(() => {
|
15475
15552
|
if (value === void 0) {
|
15476
15553
|
return;
|
15477
15554
|
}
|
15478
15555
|
updateCarets();
|
15479
15556
|
setSelected(value);
|
15480
15557
|
revealSelectedTab({ smooth: value !== selected });
|
15481
|
-
}, [value,
|
15482
|
-
(0,
|
15558
|
+
}, [value, import_react101.default.Children.count(children)]);
|
15559
|
+
(0, import_react101.useLayoutEffect)(() => {
|
15483
15560
|
updateCarets();
|
15484
15561
|
containerRef.current?.addEventListener("scroll", updateCarets);
|
15485
15562
|
window.addEventListener("resize", updateCarets);
|
@@ -15540,12 +15617,12 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15540
15617
|
const handleSelected = (key) => {
|
15541
15618
|
(onChange ?? setSelected)(key);
|
15542
15619
|
};
|
15543
|
-
|
15620
|
+
import_react101.default.Children.forEach(children, (c) => {
|
15544
15621
|
if (c && !isTabComponent(c)) {
|
15545
15622
|
throw new Error("<Tabs> can only have <Tabs.Tab> components as children");
|
15546
15623
|
}
|
15547
15624
|
});
|
15548
|
-
return /* @__PURE__ */
|
15625
|
+
return /* @__PURE__ */ import_react101.default.createElement("div", { ref: parentRef, className: classNames("Aquarium-Tabs", tw("h-full"), className) }, /* @__PURE__ */ import_react101.default.createElement("div", { className: tw("relative flex items-center border-b-2 border-default") }, /* @__PURE__ */ import_react101.default.createElement("div", { ref: containerRef, className: tw("overflow-y-auto scrollbar-hide mb-[-2px] h-auto") }, /* @__PURE__ */ import_react101.default.createElement(
|
15549
15626
|
"div",
|
15550
15627
|
{
|
15551
15628
|
ref: tabsRef,
|
@@ -15553,9 +15630,9 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15553
15630
|
"aria-label": "tabs",
|
15554
15631
|
className: tw("inline-flex items-center cursor-pointer font-normal h-full")
|
15555
15632
|
},
|
15556
|
-
|
15633
|
+
import_react101.default.Children.map(
|
15557
15634
|
children,
|
15558
|
-
(tab, index) => tab ? /* @__PURE__ */
|
15635
|
+
(tab, index) => tab ? /* @__PURE__ */ import_react101.default.createElement(
|
15559
15636
|
TabItemComponent,
|
15560
15637
|
{
|
15561
15638
|
key: tab.props.value,
|
@@ -15567,26 +15644,26 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15567
15644
|
}
|
15568
15645
|
) : void 0
|
15569
15646
|
)
|
15570
|
-
)), leftCaret && /* @__PURE__ */
|
15647
|
+
)), leftCaret && /* @__PURE__ */ import_react101.default.createElement("div", { className: tw("absolute left-0 bg-gradient-to-r from-white via-white z-20 py-3 pr-4") }, /* @__PURE__ */ import_react101.default.createElement(
|
15571
15648
|
"div",
|
15572
15649
|
{
|
15573
15650
|
onClick: () => handleScrollToNext("left"),
|
15574
15651
|
className: tw("hover:bg-muted p-2 leading-none cursor-pointer")
|
15575
15652
|
},
|
15576
|
-
/* @__PURE__ */
|
15577
|
-
)), rightCaret && /* @__PURE__ */
|
15653
|
+
/* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_chevronLeft5.default })
|
15654
|
+
)), rightCaret && /* @__PURE__ */ import_react101.default.createElement(
|
15578
15655
|
"div",
|
15579
15656
|
{
|
15580
15657
|
onClick: () => handleScrollToNext("right"),
|
15581
15658
|
className: tw("absolute right-0 bg-gradient-to-l from-white via-white z-20 py-3 pl-4")
|
15582
15659
|
},
|
15583
|
-
/* @__PURE__ */
|
15660
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
15584
15661
|
"div",
|
15585
15662
|
{
|
15586
15663
|
onClick: () => handleScrollToNext("right"),
|
15587
15664
|
className: tw("hover:bg-muted p-2 leading-none cursor-pointer")
|
15588
15665
|
},
|
15589
|
-
/* @__PURE__ */
|
15666
|
+
/* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_chevronRight5.default })
|
15590
15667
|
)
|
15591
15668
|
)), renderChildren(children, selected, props));
|
15592
15669
|
};
|
@@ -15594,7 +15671,7 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15594
15671
|
Tabs2.Tab = TabComponent;
|
15595
15672
|
return Tabs2;
|
15596
15673
|
};
|
15597
|
-
var Tabs = createTabsComponent(Tab, TabItem, "Tabs", (children, selected) => /* @__PURE__ */
|
15674
|
+
var Tabs = createTabsComponent(Tab, TabItem, "Tabs", (children, selected) => /* @__PURE__ */ import_react101.default.createElement(TabContainer, null, children.find(
|
15598
15675
|
(node, index) => node?.props.value === selected || index === selected
|
15599
15676
|
)));
|
15600
15677
|
|
@@ -15622,7 +15699,7 @@ var Drawer = ({
|
|
15622
15699
|
secondaryActions,
|
15623
15700
|
closeOnEsc = true
|
15624
15701
|
}) => {
|
15625
|
-
const [hidden, setHidden] =
|
15702
|
+
const [hidden, setHidden] = import_react102.default.useState(!open);
|
15626
15703
|
if (open && hidden) {
|
15627
15704
|
setHidden(!open);
|
15628
15705
|
}
|
@@ -15645,11 +15722,11 @@ var Drawer = ({
|
|
15645
15722
|
}
|
15646
15723
|
const dialogSize = size === "lg" ? "full" : size;
|
15647
15724
|
const styles = modalStyles({ kind: "drawer", size: dialogSize });
|
15648
|
-
const childElements =
|
15725
|
+
const childElements = import_react102.default.Children.toArray(children).filter(import_react102.default.isValidElement);
|
15649
15726
|
const onlyChild = childElements.length === 1 ? childElements[0] : null;
|
15650
15727
|
const hasTabs = isComponentType(onlyChild, Tabs);
|
15651
|
-
return /* @__PURE__ */
|
15652
|
-
|
15728
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
15729
|
+
import_react_aria_components15.ModalOverlay,
|
15653
15730
|
{
|
15654
15731
|
isOpen: !hidden,
|
15655
15732
|
onOpenChange: (isOpen) => !isOpen && onClose(),
|
@@ -15657,60 +15734,60 @@ var Drawer = ({
|
|
15657
15734
|
isKeyboardDismissDisabled: !closeOnEsc,
|
15658
15735
|
className: styles.overlay({ className: "Aquarium-Drawer" })
|
15659
15736
|
},
|
15660
|
-
/* @__PURE__ */
|
15661
|
-
/* @__PURE__ */
|
15737
|
+
/* @__PURE__ */ import_react102.default.createElement(AnimatedBackDrop, { style: { opacity } }),
|
15738
|
+
/* @__PURE__ */ import_react102.default.createElement(import_react_aria_components15.Modal, null, /* @__PURE__ */ import_react102.default.createElement(AnimatedDialog, { kind: "drawer", "aria-modal": "true", size: dialogSize, style: { position: "fixed", right } }, /* @__PURE__ */ import_react102.default.createElement(import_react_aria_components15.Dialog, { className: "flex flex-col grow overflow-y-auto" }, ({ close }) => /* @__PURE__ */ import_react102.default.createElement(import_react102.default.Fragment, null, /* @__PURE__ */ import_react102.default.createElement(Modal.CloseButtonContainer, null, /* @__PURE__ */ import_react102.default.createElement(Button2.Icon, { "aria-label": "Close", icon: import_cross6.default, onClick: close })), /* @__PURE__ */ import_react102.default.createElement(Modal.Header, { className: tw({ "pb-3": hasTabs }) }, /* @__PURE__ */ import_react102.default.createElement(ModalTitle, { kind: "drawer" }, title)), hasTabs ? /* @__PURE__ */ import_react102.default.createElement(
|
15662
15739
|
DrawerTabs,
|
15663
15740
|
{
|
15664
15741
|
...onlyChild.props,
|
15665
15742
|
className: tw("[&>div:first-child]:px-5 grow flex flex-col overflow-y-auto")
|
15666
15743
|
}
|
15667
|
-
) : /* @__PURE__ */
|
15744
|
+
) : /* @__PURE__ */ import_react102.default.createElement(Modal.Body, { tabIndex: 0, noFooter: !(secondaryActions ?? primaryAction) }, children), (secondaryActions ?? primaryAction) && /* @__PURE__ */ import_react102.default.createElement(Modal.Footer, null, /* @__PURE__ */ import_react102.default.createElement(Modal.Actions, { className: size === "sm" ? tw("flex-col") : void 0 }, size !== "sm" && menu && /* @__PURE__ */ import_react102.default.createElement(Box.Flex, { alignItems: "center" }, /* @__PURE__ */ import_react102.default.createElement(DropdownMenu2, { onAction: (action) => onAction(action), onOpenChange: onMenuOpenChange }, /* @__PURE__ */ import_react102.default.createElement(DropdownMenu2.Trigger, null, /* @__PURE__ */ import_react102.default.createElement(Button2.Icon, { "aria-label": menuAriaLabel ?? "Context menu", icon: import_more4.default })), menu)), secondaryActions && (0, import_lodash_es37.castArray)(secondaryActions).filter(Boolean).map(({ text, ...action }) => /* @__PURE__ */ import_react102.default.createElement(Button2.Secondary, { key: text, ...action }, text)), primaryAction && /* @__PURE__ */ import_react102.default.createElement(Button2.Primary, { key: primaryAction.text, ...(0, import_lodash_es37.omit)(primaryAction, "text") }, primaryAction.text)))))))
|
15668
15745
|
);
|
15669
15746
|
};
|
15670
|
-
var DrawerTabs = createTabsComponent(ModalTab, TabItem, "DrawerTabs", (children, selected) => /* @__PURE__ */
|
15747
|
+
var DrawerTabs = createTabsComponent(ModalTab, TabItem, "DrawerTabs", (children, selected) => /* @__PURE__ */ import_react102.default.createElement(Modal.Body, { className: tw("h-full") }, /* @__PURE__ */ import_react102.default.createElement(TabContainer, null, children.find(
|
15671
15748
|
(node, index) => node?.props.value === selected || index === selected
|
15672
15749
|
))));
|
15673
15750
|
|
15674
15751
|
// src/molecules/Dropdown/Dropdown.tsx
|
15675
|
-
var
|
15676
|
-
var
|
15752
|
+
var import_react104 = __toESM(require("react"));
|
15753
|
+
var import_react_aria_components17 = require("react-aria-components");
|
15677
15754
|
|
15678
15755
|
// src/molecules/Popover/Popover.tsx
|
15679
|
-
var
|
15680
|
-
var
|
15756
|
+
var import_react103 = __toESM(require("react"));
|
15757
|
+
var import_react_aria_components16 = require("react-aria-components");
|
15681
15758
|
var import_utils29 = require("@react-aria/utils");
|
15682
|
-
var PopoverPropsContext = (0,
|
15683
|
-
var
|
15759
|
+
var PopoverPropsContext = (0, import_react103.createContext)({});
|
15760
|
+
var Popover2 = ({ children, onOpenChange: _onOpenChange, onClose, onOpen, ...props }) => {
|
15684
15761
|
const onOpenChange = (isOpen) => {
|
15685
15762
|
_onOpenChange?.(isOpen);
|
15686
15763
|
isOpen ? onOpen?.() : onClose?.();
|
15687
15764
|
};
|
15688
|
-
return /* @__PURE__ */
|
15765
|
+
return /* @__PURE__ */ import_react103.default.createElement(PopoverPropsContext.Provider, { value: props }, /* @__PURE__ */ import_react103.default.createElement(import_react_aria_components16.DialogTrigger, { ...props, onOpenChange }, children));
|
15689
15766
|
};
|
15690
|
-
|
15767
|
+
Popover2.displayName = "Popover";
|
15691
15768
|
var Trigger = ({ children }) => {
|
15692
|
-
return /* @__PURE__ */
|
15769
|
+
return /* @__PURE__ */ import_react103.default.createElement(Pressable, { "aria-haspopup": "true" }, children);
|
15693
15770
|
};
|
15694
15771
|
Trigger.displayName = "Popover.Trigger";
|
15695
|
-
|
15772
|
+
Popover2.Trigger = Trigger;
|
15696
15773
|
var Panel = ({ className, children }) => {
|
15697
|
-
const { offset = 0, onOpenChange, ...props } =
|
15698
|
-
return /* @__PURE__ */
|
15774
|
+
const { offset = 0, onOpenChange, ...props } = import_react103.default.useContext(PopoverPropsContext);
|
15775
|
+
return /* @__PURE__ */ import_react103.default.createElement(Popover, { ...props, className, offset }, /* @__PURE__ */ import_react103.default.createElement(Dialog, null, children));
|
15699
15776
|
};
|
15700
15777
|
Panel.displayName = "Popover.Panel";
|
15701
|
-
|
15778
|
+
Popover2.Panel = Panel;
|
15702
15779
|
var CloseToggle = ({ children }) => {
|
15703
|
-
const ctx =
|
15780
|
+
const ctx = import_react103.default.useContext(import_react_aria_components16.OverlayTriggerStateContext);
|
15704
15781
|
const onClick = ctx?.close;
|
15705
|
-
const child =
|
15706
|
-
return
|
15782
|
+
const child = import_react103.default.Children.only(children);
|
15783
|
+
return import_react103.default.cloneElement(child, { ...(0, import_utils29.mergeProps)(child.props, { onClick }) });
|
15707
15784
|
};
|
15708
15785
|
CloseToggle.displayName = "Popover.CloseToggle";
|
15709
|
-
|
15786
|
+
Popover2.CloseToggle = CloseToggle;
|
15710
15787
|
|
15711
15788
|
// src/molecules/Dropdown/Dropdown.tsx
|
15712
15789
|
var Dropdown = ({ children, content, placement = "bottom-left" }) => {
|
15713
|
-
return /* @__PURE__ */
|
15790
|
+
return /* @__PURE__ */ import_react104.default.createElement(Popover2, { placement }, /* @__PURE__ */ import_react104.default.createElement(Popover2.Trigger, null, children), /* @__PURE__ */ import_react104.default.createElement(Popover2.Panel, { className: "Aquarium-Dropdown" }, content));
|
15714
15791
|
};
|
15715
15792
|
var DropdownMenu3 = ({
|
15716
15793
|
title,
|
@@ -15719,13 +15796,13 @@ var DropdownMenu3 = ({
|
|
15719
15796
|
triggerId,
|
15720
15797
|
setClose = () => void 0
|
15721
15798
|
}) => {
|
15722
|
-
const menuRef =
|
15723
|
-
|
15799
|
+
const menuRef = import_react104.default.useRef(null);
|
15800
|
+
import_react104.default.useEffect(() => {
|
15724
15801
|
const id = setTimeout(() => (menuRef.current?.children[0]).focus());
|
15725
15802
|
return () => clearTimeout(id);
|
15726
15803
|
}, [menuRef.current]);
|
15727
|
-
return /* @__PURE__ */
|
15728
|
-
return
|
15804
|
+
return /* @__PURE__ */ import_react104.default.createElement("div", { style: { minWidth: "250px" }, className: tw("py-3 bg-popover-content") }, !!title && /* @__PURE__ */ import_react104.default.createElement("div", { className: tw("px-4 py-4 text-left text-intense typography-default-strong") }, title), /* @__PURE__ */ import_react104.default.createElement("ol", { role: "menu", ref: menuRef, id: contentId, "aria-labelledby": triggerId }, import_react104.default.Children.map(children, (child) => {
|
15805
|
+
return import_react104.default.cloneElement(child, { setClose });
|
15729
15806
|
})));
|
15730
15807
|
};
|
15731
15808
|
var DropdownItem = ({
|
@@ -15738,7 +15815,7 @@ var DropdownItem = ({
|
|
15738
15815
|
setClose = () => void 0,
|
15739
15816
|
...props
|
15740
15817
|
}) => {
|
15741
|
-
const ctx =
|
15818
|
+
const ctx = import_react104.default.useContext(import_react_aria_components17.OverlayTriggerStateContext);
|
15742
15819
|
const handleSelect = () => {
|
15743
15820
|
onSelect?.();
|
15744
15821
|
ctx?.close();
|
@@ -15772,8 +15849,8 @@ var DropdownItem = ({
|
|
15772
15849
|
handleSelect();
|
15773
15850
|
}
|
15774
15851
|
};
|
15775
|
-
const itemContent = /* @__PURE__ */
|
15776
|
-
return /* @__PURE__ */
|
15852
|
+
const itemContent = /* @__PURE__ */ import_react104.default.createElement("div", { className: tw("py-3 px-4") }, children);
|
15853
|
+
return /* @__PURE__ */ import_react104.default.createElement(
|
15777
15854
|
"li",
|
15778
15855
|
{
|
15779
15856
|
role: "menuitem",
|
@@ -15790,14 +15867,14 @@ var DropdownItem = ({
|
|
15790
15867
|
})
|
15791
15868
|
)
|
15792
15869
|
},
|
15793
|
-
tooltip ? /* @__PURE__ */
|
15870
|
+
tooltip ? /* @__PURE__ */ import_react104.default.createElement(Tooltip, { content: tooltip, placement: tooltipPlacement, display: "block" }, /* @__PURE__ */ import_react104.default.createElement("div", { tabIndex: 0, className: tw("grow") }, itemContent)) : itemContent
|
15794
15871
|
);
|
15795
15872
|
};
|
15796
15873
|
Dropdown.Menu = DropdownMenu3;
|
15797
15874
|
Dropdown.Item = DropdownItem;
|
15798
15875
|
|
15799
15876
|
// src/molecules/EmptyState/EmptyState.tsx
|
15800
|
-
var
|
15877
|
+
var import_react105 = __toESM(require("react"));
|
15801
15878
|
var EmptyStateLayout = /* @__PURE__ */ ((EmptyStateLayout2) => {
|
15802
15879
|
EmptyStateLayout2["Vertical"] = "vertical";
|
15803
15880
|
EmptyStateLayout2["Horizontal"] = "horizontal";
|
@@ -15835,7 +15912,7 @@ var EmptyState = ({
|
|
15835
15912
|
fullHeight = isVerticalLayout(layout) ? true : false
|
15836
15913
|
}) => {
|
15837
15914
|
const template = layoutStyle(layout);
|
15838
|
-
return /* @__PURE__ */
|
15915
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
15839
15916
|
Box,
|
15840
15917
|
{
|
15841
15918
|
className: classNames(
|
@@ -15851,7 +15928,7 @@ var EmptyState = ({
|
|
15851
15928
|
backgroundColor: "transparent",
|
15852
15929
|
borderColor: "default"
|
15853
15930
|
},
|
15854
|
-
/* @__PURE__ */
|
15931
|
+
/* @__PURE__ */ import_react105.default.createElement(
|
15855
15932
|
Box.Flex,
|
15856
15933
|
{
|
15857
15934
|
style: { gap: "56px" },
|
@@ -15860,19 +15937,144 @@ var EmptyState = ({
|
|
15860
15937
|
alignItems: template.layout === "row" ? "center" : template.alignItems,
|
15861
15938
|
height: fullHeight ? "full" : void 0
|
15862
15939
|
},
|
15863
|
-
Image2 && (typeof Image2 === "string" ? /* @__PURE__ */
|
15940
|
+
Image2 && (typeof Image2 === "string" ? /* @__PURE__ */ import_react105.default.createElement(
|
15864
15941
|
"img",
|
15865
15942
|
{
|
15866
15943
|
src: Image2,
|
15867
15944
|
alt: imageAlt,
|
15868
15945
|
style: { width: imageWidth ? `${imageWidth}px` : void 0, height: "auto" }
|
15869
15946
|
}
|
15870
|
-
) : /* @__PURE__ */
|
15871
|
-
/* @__PURE__ */
|
15947
|
+
) : /* @__PURE__ */ import_react105.default.createElement("div", { className: tw("animate-draw") }, /* @__PURE__ */ import_react105.default.createElement(Image2, null))),
|
15948
|
+
/* @__PURE__ */ import_react105.default.createElement(Box.Flex, { flexDirection: "column", justifyContent: template.justifyContent, alignItems: template.alignItems }, /* @__PURE__ */ import_react105.default.createElement(Typography2.Heading, { htmlTag: "h2" }, title), children && /* @__PURE__ */ import_react105.default.createElement(Box, { marginTop: "5" }, /* @__PURE__ */ import_react105.default.createElement(Typography2.Default, null, children)), (secondaryAction ?? primaryAction) && /* @__PURE__ */ import_react105.default.createElement(Box.Flex, { marginTop: "7", gap: "4", justifyContent: "center", alignItems: "center", flexWrap: "wrap" }, primaryAction && renderAction({ kind: "primary", action: primaryAction }), secondaryAction && renderAction({ kind: "secondary", action: secondaryAction })), footer && /* @__PURE__ */ import_react105.default.createElement(Box, { marginTop: "5" }, /* @__PURE__ */ import_react105.default.createElement(Typography2.Small, { color: "default" }, footer)))
|
15872
15949
|
)
|
15873
15950
|
);
|
15874
15951
|
};
|
15875
15952
|
|
15953
|
+
// src/atoms/Filter/Filter.tsx
|
15954
|
+
var import_react106 = __toESM(require("react"));
|
15955
|
+
var import_react_aria_components18 = require("react-aria-components");
|
15956
|
+
var import_tailwind_variants14 = require("tailwind-variants");
|
15957
|
+
var import_cross7 = __toESM(require_cross());
|
15958
|
+
var DATE_FORMAT_OPTIONS = {
|
15959
|
+
locale: "en-GB",
|
15960
|
+
options: { day: "numeric", month: "numeric", year: "numeric" }
|
15961
|
+
};
|
15962
|
+
var filterWrapper = (0, import_tailwind_variants14.tv)({
|
15963
|
+
base: "rounded-full inline-flex items-center pressed:border-info-default justify-between outline-0 outline-none border border-dashed border-default text-default bg-transparent",
|
15964
|
+
variants: {
|
15965
|
+
isHovered: {
|
15966
|
+
true: "hover:bg-muted"
|
15967
|
+
},
|
15968
|
+
isFocusWithin: {
|
15969
|
+
true: "border-solid border-info-default"
|
15970
|
+
},
|
15971
|
+
isInvalid: {
|
15972
|
+
true: "border-solid border-danger-default"
|
15973
|
+
},
|
15974
|
+
hasValue: {
|
15975
|
+
true: "border-solid"
|
15976
|
+
}
|
15977
|
+
}
|
15978
|
+
});
|
15979
|
+
var FilterTrigger = ({
|
15980
|
+
labelText,
|
15981
|
+
icon,
|
15982
|
+
badge,
|
15983
|
+
onClear,
|
15984
|
+
onClick,
|
15985
|
+
value,
|
15986
|
+
// children,
|
15987
|
+
error: error2 = false,
|
15988
|
+
...props
|
15989
|
+
}) => {
|
15990
|
+
const ariaDatePickerState = import_react106.default.useContext(import_react_aria_components18.DatePickerStateContext);
|
15991
|
+
const ariaDateRangePickerState = import_react106.default.useContext(import_react_aria_components18.DateRangePickerStateContext);
|
15992
|
+
const isUsedInsideDatePicker = !!ariaDatePickerState?.value;
|
15993
|
+
const isUsedInsideDateRangePicker = !!ariaDateRangePickerState?.value.start && !!ariaDateRangePickerState.value.end;
|
15994
|
+
const onClearDatePickerRelated = () => {
|
15995
|
+
if (isUsedInsideDatePicker) {
|
15996
|
+
ariaDatePickerState.setValue(null);
|
15997
|
+
} else if (isUsedInsideDateRangePicker) {
|
15998
|
+
ariaDateRangePickerState.setValue(null);
|
15999
|
+
}
|
16000
|
+
};
|
16001
|
+
const hasValue = !!value || isUsedInsideDatePicker || isUsedInsideDateRangePicker;
|
16002
|
+
const showClearButton = !!onClear && !!value || isUsedInsideDatePicker || isUsedInsideDateRangePicker;
|
16003
|
+
return /* @__PURE__ */ import_react106.default.createElement(
|
16004
|
+
import_react_aria_components18.Group,
|
16005
|
+
{
|
16006
|
+
...props,
|
16007
|
+
isInvalid: error2,
|
16008
|
+
className: (renderProps) => filterWrapper({ ...renderProps, hasValue: hasValue || !!badge })
|
16009
|
+
},
|
16010
|
+
/* @__PURE__ */ import_react106.default.createElement(import_react106.default.Fragment, null, /* @__PURE__ */ import_react106.default.createElement(
|
16011
|
+
import_react_aria_components18.Button,
|
16012
|
+
{
|
16013
|
+
onPress: () => {
|
16014
|
+
onClick && onClick();
|
16015
|
+
},
|
16016
|
+
className: tw("outline-0 outline-none flex items-center py-3 cursor-pointer", {
|
16017
|
+
"pl-4 pr-[6px]": showClearButton,
|
16018
|
+
// keep padding right the same as padding left of <FilterClearButton>
|
16019
|
+
"px-4": !showClearButton
|
16020
|
+
})
|
16021
|
+
},
|
16022
|
+
/* @__PURE__ */ import_react106.default.createElement("div", { className: tw("flex items-center gap-3 divide-x divide-grey-20") }, /* @__PURE__ */ import_react106.default.createElement("div", { className: tw("flex items-center gap-3") }, /* @__PURE__ */ import_react106.default.createElement("div", { className: tw("flex items-center gap-2") }, /* @__PURE__ */ import_react106.default.createElement(InlineIcon, { icon }), /* @__PURE__ */ import_react106.default.createElement(Typography2.Small, null, labelText)), badge && /* @__PURE__ */ import_react106.default.createElement(Typography2, { color: "primary-active", className: tw("flex items-center") }, /* @__PURE__ */ import_react106.default.createElement(Badge, { dense: true, value: badge }))), hasValue && /* @__PURE__ */ import_react106.default.createElement("div", { className: "pl-3" }, /* @__PURE__ */ import_react106.default.createElement(
|
16023
|
+
Typography2.Small,
|
16024
|
+
{
|
16025
|
+
className: tw("truncate max-w-[233px]"),
|
16026
|
+
color: error2 ? "danger-intense" : "primary-active"
|
16027
|
+
},
|
16028
|
+
value,
|
16029
|
+
isUsedInsideDatePicker && /* @__PURE__ */ import_react106.default.createElement(DateDisplay, { state: ariaDatePickerState }),
|
16030
|
+
isUsedInsideDateRangePicker && /* @__PURE__ */ import_react106.default.createElement(DateDisplay, { state: ariaDateRangePickerState })
|
16031
|
+
)))
|
16032
|
+
), showClearButton && /* @__PURE__ */ import_react106.default.createElement(
|
16033
|
+
FilterClearButton,
|
16034
|
+
{
|
16035
|
+
onClear: () => {
|
16036
|
+
onClearDatePickerRelated();
|
16037
|
+
onClear?.();
|
16038
|
+
}
|
16039
|
+
}
|
16040
|
+
))
|
16041
|
+
);
|
16042
|
+
};
|
16043
|
+
var isDateRangePickerState = (state) => {
|
16044
|
+
return "value" in state && state.value !== null && "start" in state.value;
|
16045
|
+
};
|
16046
|
+
var DateDisplay = ({ state }) => {
|
16047
|
+
const primary = isDateRangePickerState(state) ? state.formatValue(DATE_FORMAT_OPTIONS.locale, DATE_FORMAT_OPTIONS.options)?.start : state.formatValue(DATE_FORMAT_OPTIONS.locale, DATE_FORMAT_OPTIONS.options);
|
16048
|
+
const secondary = isDateRangePickerState(state) ? state.formatValue(DATE_FORMAT_OPTIONS.locale, DATE_FORMAT_OPTIONS.options)?.end : void 0;
|
16049
|
+
return /* @__PURE__ */ import_react106.default.createElement(Box.Flex, { gap: "2" }, /* @__PURE__ */ import_react106.default.createElement("span", null, primary), secondary && /* @__PURE__ */ import_react106.default.createElement(import_react106.default.Fragment, null, /* @__PURE__ */ import_react106.default.createElement("span", { "aria-hidden": true, className: tw("text-muted") }, "-"), /* @__PURE__ */ import_react106.default.createElement("span", null, secondary)));
|
16050
|
+
};
|
16051
|
+
var FilterClearButton = ({ onClear }) => (
|
16052
|
+
// using a native HTML <button> here instead of <Button slot={null} /> from react-aria because react-aria <DialogTrigger> doesn't support it as a child. If we used <Button slot={null}>, the popover would open simultaneously with the clear callback, which is unintended behavior. Interestingly, this issue doesn't occur in react-aria's <DatePicker>, but for consistency and to avoid conflicts here, we're sticking with a plain button.
|
16053
|
+
/* @__PURE__ */ import_react106.default.createElement(
|
16054
|
+
"button",
|
16055
|
+
{
|
16056
|
+
"aria-label": "Clear filter",
|
16057
|
+
onClick: (e) => {
|
16058
|
+
e.preventDefault();
|
16059
|
+
e.stopPropagation();
|
16060
|
+
const previousButton = e.currentTarget.previousElementSibling;
|
16061
|
+
if (previousButton instanceof HTMLElement) {
|
16062
|
+
previousButton.focus();
|
16063
|
+
}
|
16064
|
+
onClear();
|
16065
|
+
},
|
16066
|
+
className: tw(
|
16067
|
+
"py-[10px] pl-[6px] pr-4 inline-flex items-center hover:bg-default focus:bg-default outline-0 outline-none rounded-r-full"
|
16068
|
+
// keep padding left the same as padding right of its button sibling.
|
16069
|
+
)
|
16070
|
+
},
|
16071
|
+
/* @__PURE__ */ import_react106.default.createElement(InlineIcon, { icon: import_cross7.default })
|
16072
|
+
)
|
16073
|
+
);
|
16074
|
+
var Filter = () => null;
|
16075
|
+
FilterTrigger.displayName = "Filter.Trigger";
|
16076
|
+
Filter.Trigger = FilterTrigger;
|
16077
|
+
|
15876
16078
|
// src/molecules/LineClamp/LineClamp.tsx
|
15877
16079
|
var import_react107 = __toESM(require("react"));
|
15878
16080
|
var LineClamp2 = ({
|
@@ -15944,9 +16146,9 @@ var ListItem = ({ name, icon, active = false }) => {
|
|
15944
16146
|
|
15945
16147
|
// src/molecules/Modal/Modal.tsx
|
15946
16148
|
var import_react110 = __toESM(require("react"));
|
15947
|
-
var
|
16149
|
+
var import_react_aria_components19 = require("react-aria-components");
|
15948
16150
|
var import_lodash_es38 = require("lodash-es");
|
15949
|
-
var
|
16151
|
+
var import_cross8 = __toESM(require_cross());
|
15950
16152
|
var Modal2 = ({
|
15951
16153
|
open,
|
15952
16154
|
onClose,
|
@@ -15965,7 +16167,7 @@ var Modal2 = ({
|
|
15965
16167
|
const styles = modalStyles({ kind: "dialog", size });
|
15966
16168
|
const hasTabs = isComponentType(children, ModalTabs);
|
15967
16169
|
return /* @__PURE__ */ import_react110.default.createElement(
|
15968
|
-
|
16170
|
+
import_react_aria_components19.ModalOverlay,
|
15969
16171
|
{
|
15970
16172
|
isOpen: open,
|
15971
16173
|
onOpenChange: (isOpen) => !isOpen && onClose(),
|
@@ -15974,7 +16176,7 @@ var Modal2 = ({
|
|
15974
16176
|
className: styles.overlay({ className: "Aquarium-Modal" })
|
15975
16177
|
},
|
15976
16178
|
size !== "screen" && /* @__PURE__ */ import_react110.default.createElement(Modal.BackDrop, { className: styles.backdrop() }),
|
15977
|
-
/* @__PURE__ */ import_react110.default.createElement(
|
16179
|
+
/* @__PURE__ */ import_react110.default.createElement(import_react_aria_components19.Modal, { className: styles.dialog() }, /* @__PURE__ */ import_react110.default.createElement(import_react_aria_components19.Dialog, { className: "flex flex-col grow overflow-y-auto" }, ({ close }) => /* @__PURE__ */ import_react110.default.createElement(import_react110.default.Fragment, null, /* @__PURE__ */ import_react110.default.createElement(Modal.CloseButtonContainer, null, /* @__PURE__ */ import_react110.default.createElement(Button2.Icon, { "aria-label": "Close", icon: import_cross8.default, onClick: close })), headerImage !== void 0 && /* @__PURE__ */ import_react110.default.createElement(Modal.HeaderImage, { backgroundImage: headerImage }), /* @__PURE__ */ import_react110.default.createElement(
|
15978
16180
|
Modal.Header,
|
15979
16181
|
{
|
15980
16182
|
kind: "dialog",
|
@@ -16687,7 +16889,7 @@ var import_lodash_es43 = require("lodash-es");
|
|
16687
16889
|
|
16688
16890
|
// src/atoms/PageHeader/PageHeader.tsx
|
16689
16891
|
var import_react117 = __toESM(require("react"));
|
16690
|
-
var PageHeader = ({ children, className, ...rest }) => /* @__PURE__ */ import_react117.default.createElement("div", { className: classNames(tw("flex flex-row gap-4 pb-6"), className), ...rest }, children);
|
16892
|
+
var PageHeader = ({ children, className, ...rest }) => /* @__PURE__ */ import_react117.default.createElement("div", { className: classNames(tw("flex flex-row flex-wrap gap-4 pb-6"), className), ...rest }, children);
|
16691
16893
|
PageHeader.Container = ({ children, className, ...rest }) => /* @__PURE__ */ import_react117.default.createElement("div", { className: classNames(tw("flex flex-col grow gap-0"), className), ...rest }, children);
|
16692
16894
|
PageHeader.TitleContainer = ({ children, className, ...rest }) => /* @__PURE__ */ import_react117.default.createElement("div", { className: classNames(tw("flex flex-col justify-center gap-2"), className), ...rest }, children);
|
16693
16895
|
PageHeader.Title = ({ isSubHeader = false, children, ...rest }) => /* @__PURE__ */ import_react117.default.createElement(
|
@@ -16747,9 +16949,9 @@ PageHeader2.SubHeader.displayName = "PageHeader.SubHeader";
|
|
16747
16949
|
|
16748
16950
|
// src/molecules/Popover/PopoverContext.tsx
|
16749
16951
|
var import_react119 = require("react");
|
16750
|
-
var
|
16952
|
+
var PopoverContext = (0, import_react119.createContext)(null);
|
16751
16953
|
var usePopoverContext = () => {
|
16752
|
-
const ctx = (0, import_react119.useContext)(
|
16954
|
+
const ctx = (0, import_react119.useContext)(PopoverContext);
|
16753
16955
|
if (ctx === null) {
|
16754
16956
|
throw new Error("PopoverContext was used outside of provider.");
|
16755
16957
|
}
|
@@ -16781,12 +16983,12 @@ var PopoverDialogPropsContext = (0, import_react121.createContext)({
|
|
16781
16983
|
primaryAction: { text: "", onClick: import_lodash_es44.noop }
|
16782
16984
|
});
|
16783
16985
|
var PopoverDialog2 = ({ placement, open, children, ...props }) => {
|
16784
|
-
return /* @__PURE__ */ import_react121.default.createElement(
|
16986
|
+
return /* @__PURE__ */ import_react121.default.createElement(Popover2, { placement }, /* @__PURE__ */ import_react121.default.createElement(PopoverDialogPropsContext.Provider, { value: props }, children));
|
16785
16987
|
};
|
16786
|
-
PopoverDialog2.Trigger =
|
16988
|
+
PopoverDialog2.Trigger = Popover2.Trigger;
|
16787
16989
|
var Prompt = ({ children }) => {
|
16788
16990
|
const { title, primaryAction, secondaryAction } = import_react121.default.useContext(PopoverDialogPropsContext);
|
16789
|
-
return /* @__PURE__ */ import_react121.default.createElement(
|
16991
|
+
return /* @__PURE__ */ import_react121.default.createElement(Popover2.Panel, { className: "Aquarium-PopoverDialog max-w-[300px]" }, /* @__PURE__ */ import_react121.default.createElement(PopoverDialog.Header, null, /* @__PURE__ */ import_react121.default.createElement(PopoverDialog.Title, null, title)), /* @__PURE__ */ import_react121.default.createElement(PopoverDialog.Body, null, children), /* @__PURE__ */ import_react121.default.createElement(PopoverDialog.Footer, null, /* @__PURE__ */ import_react121.default.createElement(PopoverDialog.Actions, null, secondaryAction && /* @__PURE__ */ import_react121.default.createElement(Popover2.CloseToggle, null, /* @__PURE__ */ import_react121.default.createElement(Button2, { key: secondaryAction.text, kind: "secondary", dense: true, ...(0, import_lodash_es44.omit)(secondaryAction, "text") }, secondaryAction.text)), /* @__PURE__ */ import_react121.default.createElement(Popover2.CloseToggle, null, /* @__PURE__ */ import_react121.default.createElement(Button2, { key: primaryAction.text, kind: "ghost", dense: true, ...(0, import_lodash_es44.omit)(primaryAction, "text") }, primaryAction.text)))));
|
16790
16992
|
};
|
16791
16993
|
Prompt.displayName = "PopoverDialog.Prompt";
|
16792
16994
|
PopoverDialog2.Prompt = Prompt;
|
@@ -17520,7 +17722,7 @@ Timeline2.Skeleton.displayName = "Timeline.Skeleton";
|
|
17520
17722
|
|
17521
17723
|
// src/molecules/TimePicker/TimePicker.tsx
|
17522
17724
|
var import_react138 = __toESM(require("react"));
|
17523
|
-
var TimePicker = (props) => /* @__PURE__ */ import_react138.default.createElement(
|
17725
|
+
var TimePicker = (props) => /* @__PURE__ */ import_react138.default.createElement(TimeField2, { ...props });
|
17524
17726
|
|
17525
17727
|
// src/utils/table/sortByColumn.ts
|
17526
17728
|
var sortByColumn = (items, column, sortState) => {
|
@@ -17821,6 +18023,7 @@ var system_default = {
|
|
17821
18023
|
EmptyState,
|
17822
18024
|
EmptyStateLayout,
|
17823
18025
|
FileInput,
|
18026
|
+
Filter,
|
17824
18027
|
FormControl,
|
17825
18028
|
Grid,
|
17826
18029
|
HelperText,
|