@aivenio/aquarium 4.1.2 → 4.2.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 +55 -0
- package/dist/src/atoms/DatePicker/DatePicker.js +39 -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 +59 -4
- package/dist/src/molecules/DatePicker/DatePicker.js +72 -48
- package/dist/src/molecules/DatePicker/DateRangePicker.d.ts +59 -4
- package/dist/src/molecules/DatePicker/DateRangePicker.js +76 -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/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/system.cjs +574 -422
- package/dist/system.mjs +583 -428
- package/dist/tsconfig.module.tsbuildinfo +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,51 @@ 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
|
-
className: classNames(
|
12378
|
-
props.className,
|
12379
|
-
tw(
|
12380
|
-
"outline outline-0 p-5 [[data-placement]>&]:px-5 [[data-placement]>&]:py-6 max-h-[inherit] overflow-auto relative"
|
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"
|
12411
|
-
},
|
12412
|
-
/* @__PURE__ */ import_react94.default.createElement("path", { d: "M0 0 L6 6 L12 0" })
|
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;
|
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: "p-5 [[data-placement]>&]:px-5 [[data-placement]>&]:py-6 max-h-[inherit]",
|
12392
|
+
errorMessage: "typography-caption text-danger-default max-w-[300px]"
|
12426
12393
|
}
|
12427
|
-
|
12428
|
-
|
12429
|
-
{
|
12430
|
-
onPress: () => {
|
12431
|
-
state.setValue(null);
|
12432
|
-
}
|
12433
|
-
}
|
12434
|
-
);
|
12435
|
-
}
|
12436
|
-
var createDatePickerBase = (variant) => ({
|
12437
|
-
disabled,
|
12438
|
-
valid,
|
12439
|
-
granularity,
|
12440
|
-
shouldCloseOnSelect,
|
12441
|
-
errorMessage,
|
12442
|
-
clearSelectionEnabled = true,
|
12443
|
-
...props
|
12444
|
-
}) => {
|
12394
|
+
});
|
12395
|
+
var DatePicker = ({ variant, ...props }) => {
|
12445
12396
|
const hasSomeValue = props.value ?? props.defaultValue ?? props.placeholderValue;
|
12446
|
-
return /* @__PURE__ */
|
12447
|
-
|
12397
|
+
return /* @__PURE__ */ import_react93.default.createElement(
|
12398
|
+
import_react_aria_components9.DatePicker,
|
12448
12399
|
{
|
12449
12400
|
...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
|
12401
|
+
shouldCloseOnSelect: props.shouldCloseOnSelect ?? variant === "date",
|
12402
|
+
granularity: props.granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0)
|
12474
12403
|
}
|
12475
12404
|
);
|
12476
12405
|
};
|
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
|
-
}) => {
|
12406
|
+
var DateRangePicker = ({ variant, ...props }) => {
|
12575
12407
|
const hasSomeValue = props.value ?? props.defaultValue ?? props.placeholderValue;
|
12576
|
-
return /* @__PURE__ */
|
12577
|
-
|
12408
|
+
return /* @__PURE__ */ import_react93.default.createElement(
|
12409
|
+
import_react_aria_components9.DateRangePicker,
|
12578
12410
|
{
|
12579
12411
|
...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
|
12412
|
+
shouldCloseOnSelect: props.shouldCloseOnSelect ?? variant === "date",
|
12413
|
+
granularity: props.granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0)
|
12600
12414
|
}
|
12601
12415
|
);
|
12602
12416
|
};
|
12603
|
-
var DateRangePickerBase = createDateRangePickerBase("date");
|
12604
|
-
var DateTimeRangePickerBase = createDateRangePickerBase("datetime");
|
12605
|
-
var createDateRangePicker = (variant) => (props) => {
|
12606
|
-
const { labelProps, fieldProps } = (0, import_label3.useLabel)({ label: props.labelText });
|
12607
|
-
const errorMessageId = (0, import_utils26.useId)();
|
12608
|
-
const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
|
12609
|
-
const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
|
12610
|
-
const baseProps = (0, import_lodash_es34.omit)(props, Object.keys(labelControlProps));
|
12611
|
-
const allProps = { ...baseProps, ...fieldProps, ...errorProps, disabled: props.disabled, valid: props.valid };
|
12612
|
-
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 }));
|
12613
|
-
};
|
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
12417
|
|
12625
12418
|
// src/atoms/Dialog/Dialog.tsx
|
12626
|
-
var
|
12627
|
-
var
|
12419
|
+
var import_react94 = __toESM(require("react"));
|
12420
|
+
var import_react_aria_components10 = require("react-aria-components");
|
12628
12421
|
|
12629
12422
|
// node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
12630
12423
|
var CLASS_PART_SEPARATOR = "-";
|
@@ -15104,9 +14897,9 @@ var DIALOG_ICONS_AND_COLORS = {
|
|
15104
14897
|
color: "danger-default"
|
15105
14898
|
}
|
15106
14899
|
};
|
15107
|
-
var
|
15108
|
-
return /* @__PURE__ */
|
15109
|
-
|
14900
|
+
var Dialog = (props) => {
|
14901
|
+
return /* @__PURE__ */ import_react94.default.createElement(
|
14902
|
+
import_react_aria_components10.Dialog,
|
15110
14903
|
{
|
15111
14904
|
...props,
|
15112
14905
|
className: twMerge("outline outline-0 max-h-[inherit] overflow-auto relative", props.className)
|
@@ -15114,10 +14907,243 @@ var Dialog2 = (props) => {
|
|
15114
14907
|
);
|
15115
14908
|
};
|
15116
14909
|
|
15117
|
-
// src/
|
14910
|
+
// src/molecules/DatePicker/DatePicker.tsx
|
14911
|
+
var DatePickerClearButton = () => {
|
14912
|
+
const state = import_react95.default.useContext(import_react_aria_components11.DatePickerStateContext);
|
14913
|
+
if (!state) {
|
14914
|
+
throw new Error("DatePickerStateContext is missing a provider");
|
14915
|
+
}
|
14916
|
+
if (!state.value) {
|
14917
|
+
return null;
|
14918
|
+
}
|
14919
|
+
return /* @__PURE__ */ import_react95.default.createElement(
|
14920
|
+
ClearInputButton,
|
14921
|
+
{
|
14922
|
+
onPress: () => {
|
14923
|
+
state.setValue(null);
|
14924
|
+
}
|
14925
|
+
}
|
14926
|
+
);
|
14927
|
+
};
|
14928
|
+
DatePickerClearButton.displayName = "DatePicker.ClearButton";
|
14929
|
+
var CalendarTimeField = ({ granularity, labelText = "Time", ...props }) => {
|
14930
|
+
const ctx = import_react95.default.useContext(import_react_aria_components11.DatePickerStateContext);
|
14931
|
+
return /* @__PURE__ */ import_react95.default.createElement(
|
14932
|
+
TimeField2,
|
14933
|
+
{
|
14934
|
+
...props,
|
14935
|
+
labelText,
|
14936
|
+
granularity: granularity !== "day" ? granularity : void 0,
|
14937
|
+
value: ctx?.timeValue,
|
14938
|
+
onChange: (value) => value && ctx?.setTimeValue(value),
|
14939
|
+
reserveSpaceForError: false
|
14940
|
+
}
|
14941
|
+
);
|
14942
|
+
};
|
14943
|
+
var DatePickerCalendarPropsContext = import_react95.default.createContext(null);
|
14944
|
+
var DatePickerCalendar = (props) => {
|
14945
|
+
const ctx = import_react95.default.useContext(DatePickerCalendarPropsContext);
|
14946
|
+
const { variant, granularity, errorMessage } = (0, import_utils24.mergeProps)(ctx, props);
|
14947
|
+
const { dialog, errorMessage: errorMessageStyle } = datePickerCalendarStyles();
|
14948
|
+
return /* @__PURE__ */ import_react95.default.createElement(Popover, { offset: 0 }, /* @__PURE__ */ import_react95.default.createElement(Dialog, { className: dialog() }, /* @__PURE__ */ import_react95.default.createElement(Spacing, { gap: "3" }, /* @__PURE__ */ import_react95.default.createElement(Calendar, null), 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))));
|
14949
|
+
};
|
14950
|
+
DatePickerCalendar.displayName = "DatePicker.Calendar";
|
14951
|
+
var DatePickerField = ({ clearSelectionEnabled = true, disabled = false }) => {
|
14952
|
+
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)));
|
14953
|
+
};
|
14954
|
+
DatePickerField.displayName = "DatePicker.Field";
|
14955
|
+
var createDatePickerBase = (variant) => {
|
14956
|
+
const datePicker = ({
|
14957
|
+
disabled,
|
14958
|
+
valid,
|
14959
|
+
shouldCloseOnSelect,
|
14960
|
+
errorMessage,
|
14961
|
+
clearSelectionEnabled = true,
|
14962
|
+
children,
|
14963
|
+
...props
|
14964
|
+
}) => {
|
14965
|
+
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));
|
14966
|
+
return /* @__PURE__ */ import_react95.default.createElement(DatePickerCalendarPropsContext.Provider, { value: { variant, granularity: props.granularity, errorMessage } }, /* @__PURE__ */ import_react95.default.createElement(DatePicker, { ...props, variant, isDisabled: disabled, isInvalid: valid === false }, content));
|
14967
|
+
};
|
14968
|
+
datePicker.Calendar = DatePickerCalendar;
|
14969
|
+
datePicker.Field = DatePickerField;
|
14970
|
+
datePicker.displayName = variant === "date" ? "DatePickerBase" : "DateTimePickerBase";
|
14971
|
+
return datePicker;
|
14972
|
+
};
|
14973
|
+
var DatePickerBase = createDatePickerBase("date");
|
14974
|
+
var DateTimePickerBase = createDatePickerBase("datetime");
|
14975
|
+
var createDatePicker = (variant) => {
|
14976
|
+
const datePicker = (props) => {
|
14977
|
+
const { labelProps, fieldProps } = (0, import_label2.useLabel)({ "label": props.labelText, "aria-label": props["aria-label"] });
|
14978
|
+
const errorMessageId = (0, import_utils24.useId)();
|
14979
|
+
const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
|
14980
|
+
const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
|
14981
|
+
const baseProps = (0, import_lodash_es33.omit)(props, Object.keys(labelControlProps));
|
14982
|
+
const allProps = { ...baseProps, ...fieldProps, ...errorProps, disabled: props.disabled, valid: props.valid };
|
14983
|
+
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 }));
|
14984
|
+
};
|
14985
|
+
datePicker.Calendar = DatePickerCalendar;
|
14986
|
+
datePicker.Field = DatePickerField;
|
14987
|
+
datePicker.displayName = variant === "date" ? "DatePicker" : "DateTimePicker";
|
14988
|
+
return datePicker;
|
14989
|
+
};
|
14990
|
+
var DatePicker2 = createDatePicker("date");
|
14991
|
+
var DateTimePicker = createDatePicker("datetime");
|
14992
|
+
|
14993
|
+
// src/molecules/DatePicker/DateRangePicker.tsx
|
14994
|
+
var import_react97 = __toESM(require("react"));
|
14995
|
+
var import_react_aria_components13 = require("react-aria-components");
|
14996
|
+
var import_label3 = require("@react-aria/label");
|
14997
|
+
var import_utils26 = require("@react-aria/utils");
|
14998
|
+
var import_lodash_es34 = require("lodash-es");
|
14999
|
+
|
15000
|
+
// src/atoms/DatePicker/RangeCalendar.tsx
|
15001
|
+
var import_react96 = __toESM(require("react"));
|
15002
|
+
var import_react_aria_components12 = require("react-aria-components");
|
15003
|
+
var import_tailwind_variants12 = require("tailwind-variants");
|
15004
|
+
var cell = (0, import_tailwind_variants12.tv)({
|
15005
|
+
extend: focusRing,
|
15006
|
+
base: "w-full h-full flex items-center justify-center rounded-md text-default",
|
15007
|
+
variants: {
|
15008
|
+
selectionState: {
|
15009
|
+
none: "group-hover:bg-default group-pressed:bg-intense",
|
15010
|
+
middle: [
|
15011
|
+
"text-white",
|
15012
|
+
"group-hover:bg-primary-default",
|
15013
|
+
"group-invalid:group-hover:bg-danger-default",
|
15014
|
+
"group-pressed:bg-primary-intense",
|
15015
|
+
"group-invalid:group-pressed:bg-danger-intense"
|
15016
|
+
],
|
15017
|
+
cap: "text-white bg-primary-default group-invalid:bg-danger-default"
|
15018
|
+
},
|
15019
|
+
isUnavailable: {
|
15020
|
+
true: "text-inactive"
|
15021
|
+
},
|
15022
|
+
isDisabled: {
|
15023
|
+
true: "text-inactive"
|
15024
|
+
}
|
15025
|
+
}
|
15026
|
+
});
|
15027
|
+
function RangeCalendar(props) {
|
15028
|
+
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(
|
15029
|
+
import_react_aria_components12.CalendarCell,
|
15030
|
+
{
|
15031
|
+
date,
|
15032
|
+
className: tw(
|
15033
|
+
"group w-8 h-8 typography-small outline outline-0 cursor-default",
|
15034
|
+
"outside-month:hidden selected:bg-primary-default",
|
15035
|
+
"invalid:selected:bg-danger-default",
|
15036
|
+
"selection-start:rounded-s-md selection-end:rounded-e-md"
|
15037
|
+
)
|
15038
|
+
},
|
15039
|
+
({ formattedDate, isSelected, isSelectionStart, isSelectionEnd, ...rest }) => /* @__PURE__ */ import_react96.default.createElement(
|
15040
|
+
"span",
|
15041
|
+
{
|
15042
|
+
className: cell({
|
15043
|
+
selectionState: isSelected && (isSelectionStart || isSelectionEnd) ? "cap" : isSelected ? "middle" : "none",
|
15044
|
+
...rest
|
15045
|
+
})
|
15046
|
+
},
|
15047
|
+
formattedDate
|
15048
|
+
)
|
15049
|
+
))));
|
15050
|
+
}
|
15051
|
+
|
15052
|
+
// src/molecules/DatePicker/DateRangePicker.tsx
|
15053
|
+
function DateRangePickerClearButton() {
|
15054
|
+
const state = import_react97.default.useContext(import_react_aria_components13.DateRangePickerStateContext);
|
15055
|
+
if (!state) {
|
15056
|
+
throw new Error("DateRangePickerStateContext is missing a provider");
|
15057
|
+
}
|
15058
|
+
if (!state.value.start && !state.value.end) {
|
15059
|
+
return null;
|
15060
|
+
}
|
15061
|
+
return /* @__PURE__ */ import_react97.default.createElement(
|
15062
|
+
ClearInputButton,
|
15063
|
+
{
|
15064
|
+
onPress: () => {
|
15065
|
+
state.setValue(null);
|
15066
|
+
}
|
15067
|
+
}
|
15068
|
+
);
|
15069
|
+
}
|
15070
|
+
var RangeCalendarTimeField = ({ granularity, part, ...props }) => {
|
15071
|
+
const ctx = import_react97.default.useContext(import_react_aria_components13.DateRangePickerStateContext);
|
15072
|
+
const labelText = props.labelText ?? (part === "start" ? "Start time" : "End time");
|
15073
|
+
return /* @__PURE__ */ import_react97.default.createElement(
|
15074
|
+
TimeField2,
|
15075
|
+
{
|
15076
|
+
...props,
|
15077
|
+
labelText,
|
15078
|
+
granularity: granularity !== "day" ? granularity : void 0,
|
15079
|
+
value: ctx?.timeRange?.[part] ?? null,
|
15080
|
+
onChange: (value) => ctx?.setTime(part, value),
|
15081
|
+
reserveSpaceForError: false
|
15082
|
+
}
|
15083
|
+
);
|
15084
|
+
};
|
15085
|
+
var DateRangePickerCalendarPropsContext = import_react97.default.createContext(null);
|
15086
|
+
var DateRangePickerCalendar = (props) => {
|
15087
|
+
const ctx = import_react97.default.useContext(DateRangePickerCalendarPropsContext);
|
15088
|
+
const { variant, granularity, errorMessage } = (0, import_utils26.mergeProps)(ctx, props);
|
15089
|
+
const { dialog, errorMessage: errorMessageStyle } = datePickerCalendarStyles();
|
15090
|
+
return /* @__PURE__ */ import_react97.default.createElement(Popover, { offset: 0 }, /* @__PURE__ */ import_react97.default.createElement(Dialog, { className: dialog() }, /* @__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(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))));
|
15091
|
+
};
|
15092
|
+
DateRangePickerCalendar.displayName = "DateRangePicker.Calendar";
|
15093
|
+
var DateRangePickerField = ({ clearSelectionEnabled = true, disabled = false }) => {
|
15094
|
+
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)));
|
15095
|
+
};
|
15096
|
+
DateRangePickerField.displayName = "DateRangePicker.Field";
|
15097
|
+
var createDateRangePickerBase = (variant) => {
|
15098
|
+
const dateRangePicker = ({
|
15099
|
+
disabled,
|
15100
|
+
valid,
|
15101
|
+
shouldCloseOnSelect,
|
15102
|
+
errorMessage,
|
15103
|
+
clearSelectionEnabled = true,
|
15104
|
+
children,
|
15105
|
+
...props
|
15106
|
+
}) => {
|
15107
|
+
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 }));
|
15108
|
+
return /* @__PURE__ */ import_react97.default.createElement(DateRangePickerCalendarPropsContext.Provider, { value: { variant, granularity: props.granularity, errorMessage } }, /* @__PURE__ */ import_react97.default.createElement(DateRangePicker, { ...props, variant, isDisabled: disabled, isInvalid: valid === false }, content));
|
15109
|
+
};
|
15110
|
+
dateRangePicker.Calendar = DateRangePickerCalendar;
|
15111
|
+
dateRangePicker.Field = DateRangePickerField;
|
15112
|
+
dateRangePicker.displayName = variant === "date" ? "DateRangePickerBase" : "DateTimeRangePickerBase";
|
15113
|
+
return dateRangePicker;
|
15114
|
+
};
|
15115
|
+
var DateRangePickerBase = createDateRangePickerBase("date");
|
15116
|
+
var DateTimeRangePickerBase = createDateRangePickerBase("datetime");
|
15117
|
+
var createDateRangePicker = (variant) => {
|
15118
|
+
const dateRangePicker = (props) => {
|
15119
|
+
const { labelProps, fieldProps } = (0, import_label3.useLabel)({ "label": props.labelText, "aria-label": props["aria-label"] });
|
15120
|
+
const errorMessageId = (0, import_utils26.useId)();
|
15121
|
+
const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
|
15122
|
+
const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
|
15123
|
+
const baseProps = (0, import_lodash_es34.omit)(props, Object.keys(labelControlProps));
|
15124
|
+
const allProps = { ...baseProps, ...fieldProps, ...errorProps, disabled: props.disabled, valid: props.valid };
|
15125
|
+
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 }));
|
15126
|
+
};
|
15127
|
+
dateRangePicker.Calendar = DateRangePickerCalendar;
|
15128
|
+
dateRangePicker.Field = DateRangePickerField;
|
15129
|
+
dateRangePicker.displayName = variant === "date" ? "DateRangePicker" : "DateTimeRangePicker";
|
15130
|
+
return dateRangePicker;
|
15131
|
+
};
|
15132
|
+
var DateRangePicker2 = createDateRangePicker("date");
|
15133
|
+
var DateTimeRangePicker = createDateRangePicker("datetime");
|
15134
|
+
|
15135
|
+
// src/molecules/Dialog/Dialog.tsx
|
15118
15136
|
var import_react99 = __toESM(require("react"));
|
15119
|
-
var
|
15120
|
-
var
|
15137
|
+
var import_dialog = require("@react-aria/dialog");
|
15138
|
+
var import_overlays6 = require("@react-aria/overlays");
|
15139
|
+
var import_utils27 = require("@react-aria/utils");
|
15140
|
+
var import_overlays7 = require("@react-stately/overlays");
|
15141
|
+
var import_lodash_es35 = require("lodash-es");
|
15142
|
+
|
15143
|
+
// src/atoms/Modal/Modal.tsx
|
15144
|
+
var import_react98 = __toESM(require("react"));
|
15145
|
+
var import_tailwind_variants13 = require("tailwind-variants");
|
15146
|
+
var modalStyles = (0, import_tailwind_variants13.tv)({
|
15121
15147
|
slots: {
|
15122
15148
|
overlay: "inset-0 overflow-y-auto z-modal fixed",
|
15123
15149
|
backdrop: "-z-10 fixed min-w-full min-h-full bg-body-intense opacity-70",
|
@@ -15220,55 +15246,55 @@ var Modal = ({
|
|
15220
15246
|
...rest
|
15221
15247
|
}) => {
|
15222
15248
|
const { overlay } = modalStyles({ kind });
|
15223
|
-
return open ? /* @__PURE__ */
|
15249
|
+
return open ? /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: overlay({ className }) }, children) : null;
|
15224
15250
|
};
|
15225
15251
|
Modal.BackDrop = ({ className, ...rest }) => {
|
15226
15252
|
const { backdrop } = modalStyles();
|
15227
|
-
return /* @__PURE__ */
|
15253
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: backdrop({ className }) });
|
15228
15254
|
};
|
15229
|
-
Modal.Dialog =
|
15255
|
+
Modal.Dialog = import_react98.default.forwardRef(
|
15230
15256
|
({ kind = "dialog", children, className, size = "md", ...rest }, ref) => {
|
15231
15257
|
const { dialog } = modalStyles({ kind, size });
|
15232
|
-
return /* @__PURE__ */
|
15258
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ref, "aria-modal": "true", ...rest, className: dialog({ className }) }, children);
|
15233
15259
|
}
|
15234
15260
|
);
|
15235
15261
|
Modal.Header = ({ kind = "dialog", size = "md", children, className, ...rest }) => {
|
15236
15262
|
const { header } = modalStyles({ kind, size });
|
15237
|
-
return /* @__PURE__ */
|
15263
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: header({ className }) }, children);
|
15238
15264
|
};
|
15239
15265
|
Modal.HeaderImage = ({ backgroundImage, className, ...rest }) => {
|
15240
15266
|
const { headerImage } = modalStyles({ backgroundImage: Boolean(backgroundImage) });
|
15241
|
-
return backgroundImage ? /* @__PURE__ */
|
15267
|
+
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
15268
|
};
|
15243
15269
|
Modal.CloseButtonContainer = ({ className, ...rest }) => {
|
15244
15270
|
const { closeButtonContainer } = modalStyles();
|
15245
|
-
return /* @__PURE__ */
|
15271
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: closeButtonContainer({ className }) });
|
15246
15272
|
};
|
15247
15273
|
Modal.Title = ({ kind = "dialog", children, className, ...rest }) => {
|
15248
15274
|
const { title } = modalStyles({ kind });
|
15249
|
-
return /* @__PURE__ */
|
15275
|
+
return /* @__PURE__ */ import_react98.default.createElement(Typography, { htmlTag: "h2", variant: "subheading", color: "intense", className: title({ className }), ...rest }, children);
|
15250
15276
|
};
|
15251
|
-
Modal.Subtitle = ({ children, ...rest }) => /* @__PURE__ */
|
15277
|
+
Modal.Subtitle = ({ children, ...rest }) => /* @__PURE__ */ import_react98.default.createElement(Typography, { variant: "small", color: "default", ...rest }, children);
|
15252
15278
|
Modal.TitleContainer = ({ children, className, ...rest }) => {
|
15253
15279
|
const { titleContainer } = modalStyles();
|
15254
|
-
return /* @__PURE__ */
|
15280
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: titleContainer({ className }) }, children);
|
15255
15281
|
};
|
15256
15282
|
Modal.Body = ({ children, className, noFooter = false, maxHeight, style, ...rest }) => {
|
15257
15283
|
const { body } = modalStyles();
|
15258
|
-
return /* @__PURE__ */
|
15284
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: body({ noFooter, className }), style: { maxHeight, ...style } }, children);
|
15259
15285
|
};
|
15260
15286
|
Modal.Footer = ({ children, className, ...rest }) => {
|
15261
15287
|
const { footer } = modalStyles();
|
15262
|
-
return /* @__PURE__ */
|
15288
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: footer({ className }) }, children);
|
15263
15289
|
};
|
15264
15290
|
Modal.Actions = ({ children, className, ...rest }) => {
|
15265
15291
|
const { actions } = modalStyles();
|
15266
|
-
return /* @__PURE__ */
|
15292
|
+
return /* @__PURE__ */ import_react98.default.createElement("div", { ...rest, className: actions({ className }) }, children);
|
15267
15293
|
};
|
15268
15294
|
|
15269
15295
|
// src/molecules/Dialog/Dialog.tsx
|
15270
|
-
var
|
15271
|
-
const ref =
|
15296
|
+
var Dialog2 = (props) => {
|
15297
|
+
const ref = import_react99.default.useRef(null);
|
15272
15298
|
const { open, onClose } = props;
|
15273
15299
|
const state = (0, import_overlays7.useOverlayTriggerState)({ isOpen: open, onOpenChange: (isOpen) => !isOpen && onClose?.() });
|
15274
15300
|
const { modalProps, underlayProps } = (0, import_overlays6.useModalOverlay)(
|
@@ -15279,7 +15305,7 @@ var Dialog3 = (props) => {
|
|
15279
15305
|
if (!state.isOpen) {
|
15280
15306
|
return null;
|
15281
15307
|
}
|
15282
|
-
return /* @__PURE__ */
|
15308
|
+
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
15309
|
};
|
15284
15310
|
var DialogWrapper = ({
|
15285
15311
|
title,
|
@@ -15288,7 +15314,7 @@ var DialogWrapper = ({
|
|
15288
15314
|
primaryAction,
|
15289
15315
|
secondaryAction
|
15290
15316
|
}) => {
|
15291
|
-
const ref =
|
15317
|
+
const ref = import_react99.default.useRef(null);
|
15292
15318
|
const labelledBy = (0, import_utils27.useId)();
|
15293
15319
|
const describedBy = (0, import_utils27.useId)();
|
15294
15320
|
const { dialogProps } = (0, import_dialog.useDialog)(
|
@@ -15299,35 +15325,35 @@ var DialogWrapper = ({
|
|
15299
15325
|
},
|
15300
15326
|
ref
|
15301
15327
|
);
|
15302
|
-
return /* @__PURE__ */
|
15328
|
+
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
15329
|
};
|
15304
15330
|
|
15305
15331
|
// src/molecules/Drawer/Drawer.tsx
|
15306
|
-
var
|
15307
|
-
var
|
15332
|
+
var import_react102 = __toESM(require("react"));
|
15333
|
+
var import_react_aria_components15 = require("react-aria-components");
|
15308
15334
|
var import_web5 = require("@react-spring/web");
|
15309
15335
|
var import_lodash_es37 = require("lodash-es");
|
15310
15336
|
|
15311
15337
|
// src/molecules/Modal/ModalTitle.tsx
|
15312
|
-
var
|
15313
|
-
var
|
15338
|
+
var import_react100 = __toESM(require("react"));
|
15339
|
+
var import_react_aria_components14 = require("react-aria-components");
|
15314
15340
|
var ModalTitle = ({ children, ...props }) => {
|
15315
|
-
const [ctxProps] = (0,
|
15316
|
-
return /* @__PURE__ */
|
15341
|
+
const [ctxProps] = (0, import_react_aria_components14.useContextProps)({ ...props, slot: "title" }, null, import_react_aria_components14.HeadingContext);
|
15342
|
+
return /* @__PURE__ */ import_react100.default.createElement(Modal.Title, { id: ctxProps.id, ...props }, children);
|
15317
15343
|
};
|
15318
15344
|
|
15319
15345
|
// src/molecules/Tabs/Tabs.tsx
|
15320
|
-
var
|
15346
|
+
var import_react101 = __toESM(require("react"));
|
15321
15347
|
var import_lodash_es36 = require("lodash-es");
|
15322
15348
|
var import_chevronLeft5 = __toESM(require_chevronLeft());
|
15323
15349
|
var import_chevronRight5 = __toESM(require_chevronRight());
|
15324
15350
|
var import_warningSign4 = __toESM(require_warningSign());
|
15325
15351
|
var isTabComponent = (c) => {
|
15326
|
-
return
|
15352
|
+
return import_react101.default.isValidElement(c) && (c.type === Tab || c.type === ModalTab);
|
15327
15353
|
};
|
15328
|
-
var Tab =
|
15354
|
+
var Tab = import_react101.default.forwardRef(
|
15329
15355
|
({ className, id, title, children }, ref) => {
|
15330
|
-
return /* @__PURE__ */
|
15356
|
+
return /* @__PURE__ */ import_react101.default.createElement(
|
15331
15357
|
"div",
|
15332
15358
|
{
|
15333
15359
|
ref,
|
@@ -15341,10 +15367,10 @@ var Tab = import_react102.default.forwardRef(
|
|
15341
15367
|
);
|
15342
15368
|
}
|
15343
15369
|
);
|
15344
|
-
var TabContainer = ({ className, children, ...rest }) => /* @__PURE__ */
|
15370
|
+
var TabContainer = ({ className, children, ...rest }) => /* @__PURE__ */ import_react101.default.createElement("div", { ...rest, className: classNames("py-6 z-0", className) }, children);
|
15345
15371
|
var ModalTab = Tab;
|
15346
15372
|
var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
15347
|
-
const Tab2 =
|
15373
|
+
const Tab2 = import_react101.default.forwardRef(
|
15348
15374
|
({
|
15349
15375
|
id,
|
15350
15376
|
value,
|
@@ -15363,11 +15389,11 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15363
15389
|
const _id = id ?? (0, import_lodash_es36.kebabCase)(title);
|
15364
15390
|
let statusIcon = void 0;
|
15365
15391
|
if (status === "warning") {
|
15366
|
-
statusIcon = /* @__PURE__ */
|
15392
|
+
statusIcon = /* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_warningSign4.default, color: selected ? void 0 : "warning-default" });
|
15367
15393
|
} else if (status === "error") {
|
15368
|
-
statusIcon = /* @__PURE__ */
|
15394
|
+
statusIcon = /* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_warningSign4.default, color: selected ? void 0 : "danger-default" });
|
15369
15395
|
}
|
15370
|
-
const tab = /* @__PURE__ */
|
15396
|
+
const tab = /* @__PURE__ */ import_react101.default.createElement(
|
15371
15397
|
Component,
|
15372
15398
|
{
|
15373
15399
|
ref,
|
@@ -15388,7 +15414,7 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15388
15414
|
tabIndex: disabled ? void 0 : 0,
|
15389
15415
|
...rest
|
15390
15416
|
},
|
15391
|
-
/* @__PURE__ */
|
15417
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
15392
15418
|
Typography2,
|
15393
15419
|
{
|
15394
15420
|
htmlTag: "div",
|
@@ -15396,8 +15422,8 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15396
15422
|
color: selected ? "primary-default" : disabled ? "default" : "current",
|
15397
15423
|
className: tw("inline-flex items-center gap-3")
|
15398
15424
|
},
|
15399
|
-
showNotification ? /* @__PURE__ */
|
15400
|
-
(0, import_lodash_es36.isNumber)(badge) && /* @__PURE__ */
|
15425
|
+
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),
|
15426
|
+
(0, import_lodash_es36.isNumber)(badge) && /* @__PURE__ */ import_react101.default.createElement(
|
15401
15427
|
Typography2,
|
15402
15428
|
{
|
15403
15429
|
htmlTag: "span",
|
@@ -15405,7 +15431,7 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15405
15431
|
color: selected ? "primary-intense" : "grey-5",
|
15406
15432
|
className: "leading-none"
|
15407
15433
|
},
|
15408
|
-
/* @__PURE__ */
|
15434
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
15409
15435
|
TabBadge,
|
15410
15436
|
{
|
15411
15437
|
kind: "filled",
|
@@ -15417,7 +15443,7 @@ var asTabItem = (Component, displayName, { defaultUnderlineHidden } = {}) => {
|
|
15417
15443
|
statusIcon
|
15418
15444
|
)
|
15419
15445
|
);
|
15420
|
-
return tooltip ? /* @__PURE__ */
|
15446
|
+
return tooltip ? /* @__PURE__ */ import_react101.default.createElement(Tooltip, { content: tooltip }, tab) : tab;
|
15421
15447
|
}
|
15422
15448
|
);
|
15423
15449
|
Tab2.displayName = displayName;
|
@@ -15428,19 +15454,19 @@ var CARET_OFFSET = 24;
|
|
15428
15454
|
var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderChildren) => {
|
15429
15455
|
const Tabs2 = (props) => {
|
15430
15456
|
const { className, value, defaultValue, onChange, children } = props;
|
15431
|
-
const childArr =
|
15457
|
+
const childArr = import_react101.default.Children.toArray(children);
|
15432
15458
|
const firstTab = childArr[0];
|
15433
15459
|
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,
|
15460
|
+
const [selected, setSelected] = (0, import_react101.useState)(value ?? defaultValue ?? firstTabValue ?? 0);
|
15461
|
+
const [leftCaret, showLeftCaret] = (0, import_react101.useState)(false);
|
15462
|
+
const [rightCaret, showRightCaret] = (0, import_react101.useState)(false);
|
15463
|
+
const parentRef = (0, import_react101.useRef)(null);
|
15464
|
+
const containerRef = (0, import_react101.useRef)(null);
|
15465
|
+
const tabsRef = (0, import_react101.useRef)(null);
|
15440
15466
|
const revealSelectedTab = ({ smooth }) => {
|
15441
15467
|
const container = containerRef.current;
|
15442
15468
|
const tabs = tabsRef.current;
|
15443
|
-
const values =
|
15469
|
+
const values = import_react101.default.Children.map(
|
15444
15470
|
children,
|
15445
15471
|
(tab, i) => tab?.props.value ?? i
|
15446
15472
|
);
|
@@ -15471,15 +15497,15 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15471
15497
|
showLeftCaret(hasLeftCaret);
|
15472
15498
|
showRightCaret(hasRightCaret);
|
15473
15499
|
};
|
15474
|
-
(0,
|
15500
|
+
(0, import_react101.useEffect)(() => {
|
15475
15501
|
if (value === void 0) {
|
15476
15502
|
return;
|
15477
15503
|
}
|
15478
15504
|
updateCarets();
|
15479
15505
|
setSelected(value);
|
15480
15506
|
revealSelectedTab({ smooth: value !== selected });
|
15481
|
-
}, [value,
|
15482
|
-
(0,
|
15507
|
+
}, [value, import_react101.default.Children.count(children)]);
|
15508
|
+
(0, import_react101.useLayoutEffect)(() => {
|
15483
15509
|
updateCarets();
|
15484
15510
|
containerRef.current?.addEventListener("scroll", updateCarets);
|
15485
15511
|
window.addEventListener("resize", updateCarets);
|
@@ -15540,12 +15566,12 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15540
15566
|
const handleSelected = (key) => {
|
15541
15567
|
(onChange ?? setSelected)(key);
|
15542
15568
|
};
|
15543
|
-
|
15569
|
+
import_react101.default.Children.forEach(children, (c) => {
|
15544
15570
|
if (c && !isTabComponent(c)) {
|
15545
15571
|
throw new Error("<Tabs> can only have <Tabs.Tab> components as children");
|
15546
15572
|
}
|
15547
15573
|
});
|
15548
|
-
return /* @__PURE__ */
|
15574
|
+
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
15575
|
"div",
|
15550
15576
|
{
|
15551
15577
|
ref: tabsRef,
|
@@ -15553,9 +15579,9 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15553
15579
|
"aria-label": "tabs",
|
15554
15580
|
className: tw("inline-flex items-center cursor-pointer font-normal h-full")
|
15555
15581
|
},
|
15556
|
-
|
15582
|
+
import_react101.default.Children.map(
|
15557
15583
|
children,
|
15558
|
-
(tab, index) => tab ? /* @__PURE__ */
|
15584
|
+
(tab, index) => tab ? /* @__PURE__ */ import_react101.default.createElement(
|
15559
15585
|
TabItemComponent,
|
15560
15586
|
{
|
15561
15587
|
key: tab.props.value,
|
@@ -15567,26 +15593,26 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15567
15593
|
}
|
15568
15594
|
) : void 0
|
15569
15595
|
)
|
15570
|
-
)), leftCaret && /* @__PURE__ */
|
15596
|
+
)), 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
15597
|
"div",
|
15572
15598
|
{
|
15573
15599
|
onClick: () => handleScrollToNext("left"),
|
15574
15600
|
className: tw("hover:bg-muted p-2 leading-none cursor-pointer")
|
15575
15601
|
},
|
15576
|
-
/* @__PURE__ */
|
15577
|
-
)), rightCaret && /* @__PURE__ */
|
15602
|
+
/* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_chevronLeft5.default })
|
15603
|
+
)), rightCaret && /* @__PURE__ */ import_react101.default.createElement(
|
15578
15604
|
"div",
|
15579
15605
|
{
|
15580
15606
|
onClick: () => handleScrollToNext("right"),
|
15581
15607
|
className: tw("absolute right-0 bg-gradient-to-l from-white via-white z-20 py-3 pl-4")
|
15582
15608
|
},
|
15583
|
-
/* @__PURE__ */
|
15609
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
15584
15610
|
"div",
|
15585
15611
|
{
|
15586
15612
|
onClick: () => handleScrollToNext("right"),
|
15587
15613
|
className: tw("hover:bg-muted p-2 leading-none cursor-pointer")
|
15588
15614
|
},
|
15589
|
-
/* @__PURE__ */
|
15615
|
+
/* @__PURE__ */ import_react101.default.createElement(InlineIcon, { icon: import_chevronRight5.default })
|
15590
15616
|
)
|
15591
15617
|
)), renderChildren(children, selected, props));
|
15592
15618
|
};
|
@@ -15594,7 +15620,7 @@ var createTabsComponent = (TabComponent, TabItemComponent, displayName, renderCh
|
|
15594
15620
|
Tabs2.Tab = TabComponent;
|
15595
15621
|
return Tabs2;
|
15596
15622
|
};
|
15597
|
-
var Tabs = createTabsComponent(Tab, TabItem, "Tabs", (children, selected) => /* @__PURE__ */
|
15623
|
+
var Tabs = createTabsComponent(Tab, TabItem, "Tabs", (children, selected) => /* @__PURE__ */ import_react101.default.createElement(TabContainer, null, children.find(
|
15598
15624
|
(node, index) => node?.props.value === selected || index === selected
|
15599
15625
|
)));
|
15600
15626
|
|
@@ -15622,7 +15648,7 @@ var Drawer = ({
|
|
15622
15648
|
secondaryActions,
|
15623
15649
|
closeOnEsc = true
|
15624
15650
|
}) => {
|
15625
|
-
const [hidden, setHidden] =
|
15651
|
+
const [hidden, setHidden] = import_react102.default.useState(!open);
|
15626
15652
|
if (open && hidden) {
|
15627
15653
|
setHidden(!open);
|
15628
15654
|
}
|
@@ -15645,11 +15671,11 @@ var Drawer = ({
|
|
15645
15671
|
}
|
15646
15672
|
const dialogSize = size === "lg" ? "full" : size;
|
15647
15673
|
const styles = modalStyles({ kind: "drawer", size: dialogSize });
|
15648
|
-
const childElements =
|
15674
|
+
const childElements = import_react102.default.Children.toArray(children).filter(import_react102.default.isValidElement);
|
15649
15675
|
const onlyChild = childElements.length === 1 ? childElements[0] : null;
|
15650
15676
|
const hasTabs = isComponentType(onlyChild, Tabs);
|
15651
|
-
return /* @__PURE__ */
|
15652
|
-
|
15677
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
15678
|
+
import_react_aria_components15.ModalOverlay,
|
15653
15679
|
{
|
15654
15680
|
isOpen: !hidden,
|
15655
15681
|
onOpenChange: (isOpen) => !isOpen && onClose(),
|
@@ -15657,60 +15683,60 @@ var Drawer = ({
|
|
15657
15683
|
isKeyboardDismissDisabled: !closeOnEsc,
|
15658
15684
|
className: styles.overlay({ className: "Aquarium-Drawer" })
|
15659
15685
|
},
|
15660
|
-
/* @__PURE__ */
|
15661
|
-
/* @__PURE__ */
|
15686
|
+
/* @__PURE__ */ import_react102.default.createElement(AnimatedBackDrop, { style: { opacity } }),
|
15687
|
+
/* @__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
15688
|
DrawerTabs,
|
15663
15689
|
{
|
15664
15690
|
...onlyChild.props,
|
15665
15691
|
className: tw("[&>div:first-child]:px-5 grow flex flex-col overflow-y-auto")
|
15666
15692
|
}
|
15667
|
-
) : /* @__PURE__ */
|
15693
|
+
) : /* @__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
15694
|
);
|
15669
15695
|
};
|
15670
|
-
var DrawerTabs = createTabsComponent(ModalTab, TabItem, "DrawerTabs", (children, selected) => /* @__PURE__ */
|
15696
|
+
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
15697
|
(node, index) => node?.props.value === selected || index === selected
|
15672
15698
|
))));
|
15673
15699
|
|
15674
15700
|
// src/molecules/Dropdown/Dropdown.tsx
|
15675
|
-
var
|
15676
|
-
var
|
15701
|
+
var import_react104 = __toESM(require("react"));
|
15702
|
+
var import_react_aria_components17 = require("react-aria-components");
|
15677
15703
|
|
15678
15704
|
// src/molecules/Popover/Popover.tsx
|
15679
|
-
var
|
15680
|
-
var
|
15705
|
+
var import_react103 = __toESM(require("react"));
|
15706
|
+
var import_react_aria_components16 = require("react-aria-components");
|
15681
15707
|
var import_utils29 = require("@react-aria/utils");
|
15682
|
-
var PopoverPropsContext = (0,
|
15683
|
-
var
|
15708
|
+
var PopoverPropsContext = (0, import_react103.createContext)({});
|
15709
|
+
var Popover2 = ({ children, onOpenChange: _onOpenChange, onClose, onOpen, ...props }) => {
|
15684
15710
|
const onOpenChange = (isOpen) => {
|
15685
15711
|
_onOpenChange?.(isOpen);
|
15686
15712
|
isOpen ? onOpen?.() : onClose?.();
|
15687
15713
|
};
|
15688
|
-
return /* @__PURE__ */
|
15714
|
+
return /* @__PURE__ */ import_react103.default.createElement(PopoverPropsContext.Provider, { value: props }, /* @__PURE__ */ import_react103.default.createElement(import_react_aria_components16.DialogTrigger, { ...props, onOpenChange }, children));
|
15689
15715
|
};
|
15690
|
-
|
15716
|
+
Popover2.displayName = "Popover";
|
15691
15717
|
var Trigger = ({ children }) => {
|
15692
|
-
return /* @__PURE__ */
|
15718
|
+
return /* @__PURE__ */ import_react103.default.createElement(Pressable, { "aria-haspopup": "true" }, children);
|
15693
15719
|
};
|
15694
15720
|
Trigger.displayName = "Popover.Trigger";
|
15695
|
-
|
15721
|
+
Popover2.Trigger = Trigger;
|
15696
15722
|
var Panel = ({ className, children }) => {
|
15697
|
-
const { offset = 0, onOpenChange, ...props } =
|
15698
|
-
return /* @__PURE__ */
|
15723
|
+
const { offset = 0, onOpenChange, ...props } = import_react103.default.useContext(PopoverPropsContext);
|
15724
|
+
return /* @__PURE__ */ import_react103.default.createElement(Popover, { ...props, className, offset }, /* @__PURE__ */ import_react103.default.createElement(Dialog, null, children));
|
15699
15725
|
};
|
15700
15726
|
Panel.displayName = "Popover.Panel";
|
15701
|
-
|
15727
|
+
Popover2.Panel = Panel;
|
15702
15728
|
var CloseToggle = ({ children }) => {
|
15703
|
-
const ctx =
|
15729
|
+
const ctx = import_react103.default.useContext(import_react_aria_components16.OverlayTriggerStateContext);
|
15704
15730
|
const onClick = ctx?.close;
|
15705
|
-
const child =
|
15706
|
-
return
|
15731
|
+
const child = import_react103.default.Children.only(children);
|
15732
|
+
return import_react103.default.cloneElement(child, { ...(0, import_utils29.mergeProps)(child.props, { onClick }) });
|
15707
15733
|
};
|
15708
15734
|
CloseToggle.displayName = "Popover.CloseToggle";
|
15709
|
-
|
15735
|
+
Popover2.CloseToggle = CloseToggle;
|
15710
15736
|
|
15711
15737
|
// src/molecules/Dropdown/Dropdown.tsx
|
15712
15738
|
var Dropdown = ({ children, content, placement = "bottom-left" }) => {
|
15713
|
-
return /* @__PURE__ */
|
15739
|
+
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
15740
|
};
|
15715
15741
|
var DropdownMenu3 = ({
|
15716
15742
|
title,
|
@@ -15719,13 +15745,13 @@ var DropdownMenu3 = ({
|
|
15719
15745
|
triggerId,
|
15720
15746
|
setClose = () => void 0
|
15721
15747
|
}) => {
|
15722
|
-
const menuRef =
|
15723
|
-
|
15748
|
+
const menuRef = import_react104.default.useRef(null);
|
15749
|
+
import_react104.default.useEffect(() => {
|
15724
15750
|
const id = setTimeout(() => (menuRef.current?.children[0]).focus());
|
15725
15751
|
return () => clearTimeout(id);
|
15726
15752
|
}, [menuRef.current]);
|
15727
|
-
return /* @__PURE__ */
|
15728
|
-
return
|
15753
|
+
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) => {
|
15754
|
+
return import_react104.default.cloneElement(child, { setClose });
|
15729
15755
|
})));
|
15730
15756
|
};
|
15731
15757
|
var DropdownItem = ({
|
@@ -15738,7 +15764,7 @@ var DropdownItem = ({
|
|
15738
15764
|
setClose = () => void 0,
|
15739
15765
|
...props
|
15740
15766
|
}) => {
|
15741
|
-
const ctx =
|
15767
|
+
const ctx = import_react104.default.useContext(import_react_aria_components17.OverlayTriggerStateContext);
|
15742
15768
|
const handleSelect = () => {
|
15743
15769
|
onSelect?.();
|
15744
15770
|
ctx?.close();
|
@@ -15772,8 +15798,8 @@ var DropdownItem = ({
|
|
15772
15798
|
handleSelect();
|
15773
15799
|
}
|
15774
15800
|
};
|
15775
|
-
const itemContent = /* @__PURE__ */
|
15776
|
-
return /* @__PURE__ */
|
15801
|
+
const itemContent = /* @__PURE__ */ import_react104.default.createElement("div", { className: tw("py-3 px-4") }, children);
|
15802
|
+
return /* @__PURE__ */ import_react104.default.createElement(
|
15777
15803
|
"li",
|
15778
15804
|
{
|
15779
15805
|
role: "menuitem",
|
@@ -15790,14 +15816,14 @@ var DropdownItem = ({
|
|
15790
15816
|
})
|
15791
15817
|
)
|
15792
15818
|
},
|
15793
|
-
tooltip ? /* @__PURE__ */
|
15819
|
+
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
15820
|
);
|
15795
15821
|
};
|
15796
15822
|
Dropdown.Menu = DropdownMenu3;
|
15797
15823
|
Dropdown.Item = DropdownItem;
|
15798
15824
|
|
15799
15825
|
// src/molecules/EmptyState/EmptyState.tsx
|
15800
|
-
var
|
15826
|
+
var import_react105 = __toESM(require("react"));
|
15801
15827
|
var EmptyStateLayout = /* @__PURE__ */ ((EmptyStateLayout2) => {
|
15802
15828
|
EmptyStateLayout2["Vertical"] = "vertical";
|
15803
15829
|
EmptyStateLayout2["Horizontal"] = "horizontal";
|
@@ -15835,7 +15861,7 @@ var EmptyState = ({
|
|
15835
15861
|
fullHeight = isVerticalLayout(layout) ? true : false
|
15836
15862
|
}) => {
|
15837
15863
|
const template = layoutStyle(layout);
|
15838
|
-
return /* @__PURE__ */
|
15864
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
15839
15865
|
Box,
|
15840
15866
|
{
|
15841
15867
|
className: classNames(
|
@@ -15851,7 +15877,7 @@ var EmptyState = ({
|
|
15851
15877
|
backgroundColor: "transparent",
|
15852
15878
|
borderColor: "default"
|
15853
15879
|
},
|
15854
|
-
/* @__PURE__ */
|
15880
|
+
/* @__PURE__ */ import_react105.default.createElement(
|
15855
15881
|
Box.Flex,
|
15856
15882
|
{
|
15857
15883
|
style: { gap: "56px" },
|
@@ -15860,19 +15886,144 @@ var EmptyState = ({
|
|
15860
15886
|
alignItems: template.layout === "row" ? "center" : template.alignItems,
|
15861
15887
|
height: fullHeight ? "full" : void 0
|
15862
15888
|
},
|
15863
|
-
Image2 && (typeof Image2 === "string" ? /* @__PURE__ */
|
15889
|
+
Image2 && (typeof Image2 === "string" ? /* @__PURE__ */ import_react105.default.createElement(
|
15864
15890
|
"img",
|
15865
15891
|
{
|
15866
15892
|
src: Image2,
|
15867
15893
|
alt: imageAlt,
|
15868
15894
|
style: { width: imageWidth ? `${imageWidth}px` : void 0, height: "auto" }
|
15869
15895
|
}
|
15870
|
-
) : /* @__PURE__ */
|
15871
|
-
/* @__PURE__ */
|
15896
|
+
) : /* @__PURE__ */ import_react105.default.createElement("div", { className: tw("animate-draw") }, /* @__PURE__ */ import_react105.default.createElement(Image2, null))),
|
15897
|
+
/* @__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
15898
|
)
|
15873
15899
|
);
|
15874
15900
|
};
|
15875
15901
|
|
15902
|
+
// src/atoms/Filter/Filter.tsx
|
15903
|
+
var import_react106 = __toESM(require("react"));
|
15904
|
+
var import_react_aria_components18 = require("react-aria-components");
|
15905
|
+
var import_tailwind_variants14 = require("tailwind-variants");
|
15906
|
+
var import_cross7 = __toESM(require_cross());
|
15907
|
+
var DATE_FORMAT_OPTIONS = {
|
15908
|
+
locale: "en-GB",
|
15909
|
+
options: { day: "numeric", month: "numeric", year: "numeric" }
|
15910
|
+
};
|
15911
|
+
var filterWrapper = (0, import_tailwind_variants14.tv)({
|
15912
|
+
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",
|
15913
|
+
variants: {
|
15914
|
+
isHovered: {
|
15915
|
+
true: "hover:bg-muted"
|
15916
|
+
},
|
15917
|
+
isFocusWithin: {
|
15918
|
+
true: "border-solid border-info-default"
|
15919
|
+
},
|
15920
|
+
isInvalid: {
|
15921
|
+
true: "border-solid border-danger-default"
|
15922
|
+
},
|
15923
|
+
hasValue: {
|
15924
|
+
true: "border-solid"
|
15925
|
+
}
|
15926
|
+
}
|
15927
|
+
});
|
15928
|
+
var FilterTrigger = ({
|
15929
|
+
labelText,
|
15930
|
+
icon,
|
15931
|
+
badge,
|
15932
|
+
onClear,
|
15933
|
+
onClick,
|
15934
|
+
value,
|
15935
|
+
// children,
|
15936
|
+
error: error2 = false,
|
15937
|
+
...props
|
15938
|
+
}) => {
|
15939
|
+
const ariaDatePickerState = import_react106.default.useContext(import_react_aria_components18.DatePickerStateContext);
|
15940
|
+
const ariaDateRangePickerState = import_react106.default.useContext(import_react_aria_components18.DateRangePickerStateContext);
|
15941
|
+
const isUsedInsideDatePicker = !!ariaDatePickerState?.value;
|
15942
|
+
const isUsedInsideDateRangePicker = !!ariaDateRangePickerState?.value.start && !!ariaDateRangePickerState.value.end;
|
15943
|
+
const onClearDatePickerRelated = () => {
|
15944
|
+
if (isUsedInsideDatePicker) {
|
15945
|
+
ariaDatePickerState.setValue(null);
|
15946
|
+
} else if (isUsedInsideDateRangePicker) {
|
15947
|
+
ariaDateRangePickerState.setValue(null);
|
15948
|
+
}
|
15949
|
+
};
|
15950
|
+
const hasValue = !!value || isUsedInsideDatePicker || isUsedInsideDateRangePicker;
|
15951
|
+
const showClearButton = !!onClear && !!value || isUsedInsideDatePicker || isUsedInsideDateRangePicker;
|
15952
|
+
return /* @__PURE__ */ import_react106.default.createElement(
|
15953
|
+
import_react_aria_components18.Group,
|
15954
|
+
{
|
15955
|
+
...props,
|
15956
|
+
isInvalid: error2,
|
15957
|
+
className: (renderProps) => filterWrapper({ ...renderProps, hasValue: hasValue || !!badge })
|
15958
|
+
},
|
15959
|
+
/* @__PURE__ */ import_react106.default.createElement(import_react106.default.Fragment, null, /* @__PURE__ */ import_react106.default.createElement(
|
15960
|
+
import_react_aria_components18.Button,
|
15961
|
+
{
|
15962
|
+
onPress: () => {
|
15963
|
+
onClick && onClick();
|
15964
|
+
},
|
15965
|
+
className: tw("outline-0 outline-none flex items-center py-3 cursor-pointer", {
|
15966
|
+
"pl-4 pr-[6px]": showClearButton,
|
15967
|
+
// keep padding right the same as padding left of <FilterClearButton>
|
15968
|
+
"px-4": !showClearButton
|
15969
|
+
})
|
15970
|
+
},
|
15971
|
+
/* @__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(
|
15972
|
+
Typography2.Small,
|
15973
|
+
{
|
15974
|
+
className: tw("truncate max-w-[233px]"),
|
15975
|
+
color: error2 ? "danger-intense" : "primary-active"
|
15976
|
+
},
|
15977
|
+
value,
|
15978
|
+
isUsedInsideDatePicker && /* @__PURE__ */ import_react106.default.createElement(DateDisplay, { state: ariaDatePickerState }),
|
15979
|
+
isUsedInsideDateRangePicker && /* @__PURE__ */ import_react106.default.createElement(DateDisplay, { state: ariaDateRangePickerState })
|
15980
|
+
)))
|
15981
|
+
), showClearButton && /* @__PURE__ */ import_react106.default.createElement(
|
15982
|
+
FilterClearButton,
|
15983
|
+
{
|
15984
|
+
onClear: () => {
|
15985
|
+
onClearDatePickerRelated();
|
15986
|
+
onClear?.();
|
15987
|
+
}
|
15988
|
+
}
|
15989
|
+
))
|
15990
|
+
);
|
15991
|
+
};
|
15992
|
+
var isDateRangePickerState = (state) => {
|
15993
|
+
return "value" in state && state.value !== null && "start" in state.value;
|
15994
|
+
};
|
15995
|
+
var DateDisplay = ({ state }) => {
|
15996
|
+
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);
|
15997
|
+
const secondary = isDateRangePickerState(state) ? state.formatValue(DATE_FORMAT_OPTIONS.locale, DATE_FORMAT_OPTIONS.options)?.end : void 0;
|
15998
|
+
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)));
|
15999
|
+
};
|
16000
|
+
var FilterClearButton = ({ onClear }) => (
|
16001
|
+
// 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.
|
16002
|
+
/* @__PURE__ */ import_react106.default.createElement(
|
16003
|
+
"button",
|
16004
|
+
{
|
16005
|
+
"aria-label": "Clear filter",
|
16006
|
+
onClick: (e) => {
|
16007
|
+
e.preventDefault();
|
16008
|
+
e.stopPropagation();
|
16009
|
+
const previousButton = e.currentTarget.previousElementSibling;
|
16010
|
+
if (previousButton instanceof HTMLElement) {
|
16011
|
+
previousButton.focus();
|
16012
|
+
}
|
16013
|
+
onClear();
|
16014
|
+
},
|
16015
|
+
className: tw(
|
16016
|
+
"py-[10px] pl-[6px] pr-4 inline-flex items-center hover:bg-default focus:bg-default outline-0 outline-none rounded-r-full"
|
16017
|
+
// keep padding left the same as padding right of its button sibling.
|
16018
|
+
)
|
16019
|
+
},
|
16020
|
+
/* @__PURE__ */ import_react106.default.createElement(InlineIcon, { icon: import_cross7.default })
|
16021
|
+
)
|
16022
|
+
);
|
16023
|
+
var Filter = () => null;
|
16024
|
+
FilterTrigger.displayName = "Filter.Trigger";
|
16025
|
+
Filter.Trigger = FilterTrigger;
|
16026
|
+
|
15876
16027
|
// src/molecules/LineClamp/LineClamp.tsx
|
15877
16028
|
var import_react107 = __toESM(require("react"));
|
15878
16029
|
var LineClamp2 = ({
|
@@ -15944,9 +16095,9 @@ var ListItem = ({ name, icon, active = false }) => {
|
|
15944
16095
|
|
15945
16096
|
// src/molecules/Modal/Modal.tsx
|
15946
16097
|
var import_react110 = __toESM(require("react"));
|
15947
|
-
var
|
16098
|
+
var import_react_aria_components19 = require("react-aria-components");
|
15948
16099
|
var import_lodash_es38 = require("lodash-es");
|
15949
|
-
var
|
16100
|
+
var import_cross8 = __toESM(require_cross());
|
15950
16101
|
var Modal2 = ({
|
15951
16102
|
open,
|
15952
16103
|
onClose,
|
@@ -15965,7 +16116,7 @@ var Modal2 = ({
|
|
15965
16116
|
const styles = modalStyles({ kind: "dialog", size });
|
15966
16117
|
const hasTabs = isComponentType(children, ModalTabs);
|
15967
16118
|
return /* @__PURE__ */ import_react110.default.createElement(
|
15968
|
-
|
16119
|
+
import_react_aria_components19.ModalOverlay,
|
15969
16120
|
{
|
15970
16121
|
isOpen: open,
|
15971
16122
|
onOpenChange: (isOpen) => !isOpen && onClose(),
|
@@ -15974,7 +16125,7 @@ var Modal2 = ({
|
|
15974
16125
|
className: styles.overlay({ className: "Aquarium-Modal" })
|
15975
16126
|
},
|
15976
16127
|
size !== "screen" && /* @__PURE__ */ import_react110.default.createElement(Modal.BackDrop, { className: styles.backdrop() }),
|
15977
|
-
/* @__PURE__ */ import_react110.default.createElement(
|
16128
|
+
/* @__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
16129
|
Modal.Header,
|
15979
16130
|
{
|
15980
16131
|
kind: "dialog",
|
@@ -16687,7 +16838,7 @@ var import_lodash_es43 = require("lodash-es");
|
|
16687
16838
|
|
16688
16839
|
// src/atoms/PageHeader/PageHeader.tsx
|
16689
16840
|
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);
|
16841
|
+
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
16842
|
PageHeader.Container = ({ children, className, ...rest }) => /* @__PURE__ */ import_react117.default.createElement("div", { className: classNames(tw("flex flex-col grow gap-0"), className), ...rest }, children);
|
16692
16843
|
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
16844
|
PageHeader.Title = ({ isSubHeader = false, children, ...rest }) => /* @__PURE__ */ import_react117.default.createElement(
|
@@ -16747,9 +16898,9 @@ PageHeader2.SubHeader.displayName = "PageHeader.SubHeader";
|
|
16747
16898
|
|
16748
16899
|
// src/molecules/Popover/PopoverContext.tsx
|
16749
16900
|
var import_react119 = require("react");
|
16750
|
-
var
|
16901
|
+
var PopoverContext = (0, import_react119.createContext)(null);
|
16751
16902
|
var usePopoverContext = () => {
|
16752
|
-
const ctx = (0, import_react119.useContext)(
|
16903
|
+
const ctx = (0, import_react119.useContext)(PopoverContext);
|
16753
16904
|
if (ctx === null) {
|
16754
16905
|
throw new Error("PopoverContext was used outside of provider.");
|
16755
16906
|
}
|
@@ -16781,12 +16932,12 @@ var PopoverDialogPropsContext = (0, import_react121.createContext)({
|
|
16781
16932
|
primaryAction: { text: "", onClick: import_lodash_es44.noop }
|
16782
16933
|
});
|
16783
16934
|
var PopoverDialog2 = ({ placement, open, children, ...props }) => {
|
16784
|
-
return /* @__PURE__ */ import_react121.default.createElement(
|
16935
|
+
return /* @__PURE__ */ import_react121.default.createElement(Popover2, { placement }, /* @__PURE__ */ import_react121.default.createElement(PopoverDialogPropsContext.Provider, { value: props }, children));
|
16785
16936
|
};
|
16786
|
-
PopoverDialog2.Trigger =
|
16937
|
+
PopoverDialog2.Trigger = Popover2.Trigger;
|
16787
16938
|
var Prompt = ({ children }) => {
|
16788
16939
|
const { title, primaryAction, secondaryAction } = import_react121.default.useContext(PopoverDialogPropsContext);
|
16789
|
-
return /* @__PURE__ */ import_react121.default.createElement(
|
16940
|
+
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
16941
|
};
|
16791
16942
|
Prompt.displayName = "PopoverDialog.Prompt";
|
16792
16943
|
PopoverDialog2.Prompt = Prompt;
|
@@ -17520,7 +17671,7 @@ Timeline2.Skeleton.displayName = "Timeline.Skeleton";
|
|
17520
17671
|
|
17521
17672
|
// src/molecules/TimePicker/TimePicker.tsx
|
17522
17673
|
var import_react138 = __toESM(require("react"));
|
17523
|
-
var TimePicker = (props) => /* @__PURE__ */ import_react138.default.createElement(
|
17674
|
+
var TimePicker = (props) => /* @__PURE__ */ import_react138.default.createElement(TimeField2, { ...props });
|
17524
17675
|
|
17525
17676
|
// src/utils/table/sortByColumn.ts
|
17526
17677
|
var sortByColumn = (items, column, sortState) => {
|
@@ -17821,6 +17972,7 @@ var system_default = {
|
|
17821
17972
|
EmptyState,
|
17822
17973
|
EmptyStateLayout,
|
17823
17974
|
FileInput,
|
17975
|
+
Filter,
|
17824
17976
|
FormControl,
|
17825
17977
|
Grid,
|
17826
17978
|
HelperText,
|