@aivenio/aquarium 1.11.0 → 1.12.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/system.cjs CHANGED
@@ -1640,6 +1640,7 @@ __export(system_exports, {
1640
1640
  TagLabel: () => TagLabel,
1641
1641
  Tailwindify: () => Tailwindify,
1642
1642
  Template: () => Template,
1643
+ TextButton: () => TextButton,
1643
1644
  Textarea: () => Textarea,
1644
1645
  TextareaBase: () => TextareaBase,
1645
1646
  Timeline: () => Timeline2,
@@ -1775,6 +1776,7 @@ __export(molecules_exports, {
1775
1776
  TagLabel: () => TagLabel,
1776
1777
  Tailwindify: () => Tailwindify,
1777
1778
  Template: () => Template,
1779
+ TextButton: () => TextButton,
1778
1780
  Textarea: () => Textarea,
1779
1781
  TextareaBase: () => TextareaBase,
1780
1782
  Timeline: () => Timeline2,
@@ -2014,9 +2016,6 @@ var Select = {
2014
2016
  var import_react14 = __toESM(require("react"));
2015
2017
  var import_omit = __toESM(require("lodash/omit"));
2016
2018
 
2017
- // src/atoms/Alert/Alert.tsx
2018
- var import_react13 = __toESM(require("react"));
2019
-
2020
2019
  // src/molecules/Button/Button.tsx
2021
2020
  var import_react11 = __toESM(require("react"));
2022
2021
 
@@ -2843,6 +2842,7 @@ var Flexbox = Tailwindify(
2843
2842
 
2844
2843
  // src/molecules/Tooltip/Tooltip.tsx
2845
2844
  var import_react10 = __toESM(require("react"));
2845
+ var import_interactions = require("@react-aria/interactions");
2846
2846
  var import_overlays3 = require("@react-aria/overlays");
2847
2847
  var import_tooltip = require("@react-aria/tooltip");
2848
2848
  var import_utils = require("@react-aria/utils");
@@ -2980,6 +2980,9 @@ var Tooltip = (_a) => {
2980
2980
  shouldFlip,
2981
2981
  offset: ARROW_OFFSET
2982
2982
  });
2983
+ const { focusWithinProps } = (0, import_interactions.useFocusWithin)({
2984
+ onFocusWithinChange: (isFocusWithin) => isFocusWithin ? state.open() : state.close()
2985
+ });
2983
2986
  const handleClick = (e) => {
2984
2987
  var _a2, _b2;
2985
2988
  (_a2 = props.onClick) == null ? void 0 : _a2.call(props, e);
@@ -3008,6 +3011,16 @@ var Tooltip = (_a) => {
3008
3011
  return /* @__PURE__ */ import_react10.default.createElement("div", __spreadProps(__spreadValues({
3009
3012
  className: tw(`${inline ? "inline-block" : "block"}`)
3010
3013
  }, triggerProps), {
3014
+ onFocus: (e) => {
3015
+ var _a2, _b2;
3016
+ (_a2 = triggerProps.onFocus) == null ? void 0 : _a2.call(triggerProps, e);
3017
+ (_b2 = focusWithinProps.onFocus) == null ? void 0 : _b2.call(focusWithinProps, e);
3018
+ },
3019
+ onBlur: (e) => {
3020
+ var _a2, _b2;
3021
+ (_a2 = triggerProps.onBlur) == null ? void 0 : _a2.call(triggerProps, e);
3022
+ (_b2 = focusWithinProps.onBlur) == null ? void 0 : _b2.call(focusWithinProps, e);
3023
+ },
3011
3024
  onClick: handleClick,
3012
3025
  onMouseDown: handleMouseDown,
3013
3026
  onMouseUp: handleMouseUp,
@@ -3102,6 +3115,7 @@ var COLOR_CLASSNAMES = {
3102
3115
  "hover:ring-grey-50 hover:text-grey-80 disabled:text-grey-30 disabled:bg-grey-0 disabled:ring-grey-20"
3103
3116
  ),
3104
3117
  "ghost": ghostButtonStyle,
3118
+ "text": ghostButtonStyle,
3105
3119
  "secondary-ghost": tw(
3106
3120
  "text-grey-60 active:text-grey-50 focus-visible:text-grey-80 hover:text-grey-80 disabled:text-grey-30"
3107
3121
  )
@@ -3201,7 +3215,7 @@ var asButton = (Component, isDropdownButton) => {
3201
3215
  !isIconOnlyButton && COLOR_CLASSNAMES[kind],
3202
3216
  tw("inline-block border-0 rounded-sm transition whitespace-nowrap focus:outline-none relative", {
3203
3217
  "text-grey-70 p-2 active:text-grey-70 active:bg-transparent hover:text-grey-90 hover:bg-grey-0 focus-visible:text-grey-90 focus-visible:bg-grey-0 disabled:text-grey-20 disabled:bg-transparent": isIconOnlyButton,
3204
- "typography-default-strong": !dense && !isIconOnlyButton,
3218
+ "typography-default-strong": !dense && !isIconOnlyButton && kind !== "text",
3205
3219
  "typography-small-strong": dense && !isIconOnlyButton,
3206
3220
  "py-3 px-4": !dense && isButton,
3207
3221
  "py-2 px-3": dense && isButton,
@@ -3255,6 +3269,12 @@ var SecondaryGhostButton = import_react11.default.forwardRef((props, ref) => /*
3255
3269
  kind: "secondary-ghost"
3256
3270
  })));
3257
3271
  SecondaryGhostButton.displayName = "SecondaryGhostButton";
3272
+ var TextButton = import_react11.default.forwardRef((props, ref) => /* @__PURE__ */ import_react11.default.createElement(Button, __spreadProps(__spreadValues({
3273
+ ref
3274
+ }, props), {
3275
+ kind: "text"
3276
+ })));
3277
+ TextButton.displayName = "TextButton";
3258
3278
  var IconButton = import_react11.default.forwardRef((props, ref) => /* @__PURE__ */ import_react11.default.createElement(Button, __spreadProps(__spreadValues({
3259
3279
  ref
3260
3280
  }, props), {
@@ -3286,6 +3306,9 @@ var SecondaryDropdownButton = import_react11.default.forwardRef((props, ref) =>
3286
3306
  })));
3287
3307
  SecondaryDropdownButton.displayName = "SecondaryDropdownButton";
3288
3308
 
3309
+ // src/atoms/Alert/Alert.tsx
3310
+ var import_react13 = __toESM(require("react"));
3311
+
3289
3312
  // src/atoms/Typography/Typography.tsx
3290
3313
  var import_react12 = __toESM(require("react"));
3291
3314
  var import_isUndefined5 = __toESM(require("lodash/isUndefined"));
@@ -3413,14 +3436,18 @@ Alert.Dismiss = (_a) => {
3413
3436
  };
3414
3437
 
3415
3438
  // src/molecules/Alert/Alert.tsx
3416
- var Alert2 = ({ description, type, title, action, onDismiss, children }) => /* @__PURE__ */ import_react14.default.createElement(Alert, {
3439
+ var isLink = (action) => action.href !== void 0;
3440
+ var Alert2 = ({ description, type, title, onDismiss, children, action }) => /* @__PURE__ */ import_react14.default.createElement(Alert, {
3417
3441
  type,
3418
3442
  dense: Boolean(title)
3419
3443
  }, /* @__PURE__ */ import_react14.default.createElement(Alert.Icon, {
3420
3444
  type,
3421
3445
  dense: Boolean(title)
3422
- }), title && /* @__PURE__ */ import_react14.default.createElement(Alert.Title, null, title), /* @__PURE__ */ import_react14.default.createElement(Alert.Description, null, children || description), action && /* @__PURE__ */ import_react14.default.createElement(Alert.Actions, null, /* @__PURE__ */ import_react14.default.createElement(GhostButton, __spreadValues({
3446
+ }), title && /* @__PURE__ */ import_react14.default.createElement(Alert.Title, null, title), /* @__PURE__ */ import_react14.default.createElement(Alert.Description, null, children || description), action && /* @__PURE__ */ import_react14.default.createElement(Alert.Actions, null, !isLink(action) && /* @__PURE__ */ import_react14.default.createElement(GhostButton, __spreadValues({
3423
3447
  dense: true
3448
+ }, (0, import_omit.default)(action, "text")), action.text), isLink(action) && /* @__PURE__ */ import_react14.default.createElement(ExternalLinkButton, __spreadValues({
3449
+ dense: true,
3450
+ kind: "ghost"
3424
3451
  }, (0, import_omit.default)(action, "text")), action.text)), onDismiss && /* @__PURE__ */ import_react14.default.createElement(Alert.Dismiss, {
3425
3452
  onClick: onDismiss
3426
3453
  }));
@@ -4256,7 +4283,8 @@ var CompactCard = ({
4256
4283
  }), /* @__PURE__ */ import_react30.default.createElement(Card.Content, {
4257
4284
  dense: true
4258
4285
  }, clampTitle ? /* @__PURE__ */ import_react30.default.createElement(LineClamp, {
4259
- lines: clampTitle
4286
+ lines: clampTitle,
4287
+ wordBreak: "break-all"
4260
4288
  }, titleContent) : titleContent, /* @__PURE__ */ import_react30.default.createElement(Typography2.Caption, {
4261
4289
  color: "grey-70"
4262
4290
  }, children))), (action || link) && /* @__PURE__ */ import_react30.default.createElement(Card.Actions, {
@@ -4826,6 +4854,7 @@ var LabelText = ({
4826
4854
  content: helpTooltip,
4827
4855
  placement: helpTooltipPlacement
4828
4856
  }, /* @__PURE__ */ import_react41.default.createElement("span", {
4857
+ tabIndex: 0,
4829
4858
  className: tw("text-grey-30 flex items-center cursor-pointer ml-2")
4830
4859
  }, /* @__PURE__ */ import_react41.default.createElement(InlineIcon, {
4831
4860
  icon: import_questionMark.default,
@@ -5919,7 +5948,7 @@ var import_react62 = __toESM(require("react"));
5919
5948
 
5920
5949
  // src/molecules/Popover/Popover.tsx
5921
5950
  var import_react61 = __toESM(require("react"));
5922
- var import_interactions = require("@react-aria/interactions");
5951
+ var import_interactions2 = require("@react-aria/interactions");
5923
5952
  var import_overlays8 = require("@react-aria/overlays");
5924
5953
  var import_utils5 = require("@react-aria/utils");
5925
5954
  var import_overlays9 = require("@react-stately/overlays");
@@ -5973,7 +6002,7 @@ var Popover2 = (props) => {
5973
6002
  }
5974
6003
  }, import_react61.default.Children.map(props.children, (child) => {
5975
6004
  if (isComponentType(child, Popover2.Trigger)) {
5976
- return /* @__PURE__ */ import_react61.default.createElement(import_interactions.PressResponder, __spreadValues({
6005
+ return /* @__PURE__ */ import_react61.default.createElement(import_interactions2.PressResponder, __spreadValues({
5977
6006
  ref: triggerRef,
5978
6007
  onPress: state.toggle
5979
6008
  }, triggerProps), /* @__PURE__ */ import_react61.default.createElement(PopoverTriggerWrapper, {
@@ -6028,7 +6057,7 @@ var PopoverTriggerWrapper = (_a) => {
6028
6057
  var _a2;
6029
6058
  const ref = (0, import_react61.useRef)(null);
6030
6059
  const trigger = import_react61.default.Children.only(children);
6031
- const { pressProps } = (0, import_interactions.usePress)(__spreadProps(__spreadValues({}, rest), { ref }));
6060
+ const { pressProps } = (0, import_interactions2.usePress)(__spreadProps(__spreadValues({}, rest), { ref }));
6032
6061
  return import_react61.default.cloneElement(trigger, __spreadProps(__spreadValues({
6033
6062
  "ref": ref
6034
6063
  }, (0, import_utils5.mergeProps)(pressProps, trigger.props)), {
@@ -6143,7 +6172,10 @@ var DropdownItem = (_a) => {
6143
6172
  content: tooltip,
6144
6173
  placement: tooltipPlacement,
6145
6174
  inline: false
6146
- }, itemContent) : itemContent);
6175
+ }, /* @__PURE__ */ import_react62.default.createElement("div", {
6176
+ tabIndex: 0,
6177
+ className: tw("grow")
6178
+ }, itemContent)) : itemContent);
6147
6179
  };
6148
6180
  Dropdown.Menu = DropdownMenu;
6149
6181
  Dropdown.Item = DropdownItem;
@@ -6151,7 +6183,7 @@ Dropdown.Item = DropdownItem;
6151
6183
  // src/molecules/DropdownMenu/DropdownMenu.tsx
6152
6184
  var import_react66 = __toESM(require("react"));
6153
6185
  var import_i18n = require("@react-aria/i18n");
6154
- var import_interactions2 = require("@react-aria/interactions");
6186
+ var import_interactions3 = require("@react-aria/interactions");
6155
6187
  var import_menu = require("@react-aria/menu");
6156
6188
  var import_overlays10 = require("@react-aria/overlays");
6157
6189
  var import_separator = require("@react-aria/separator");
@@ -6441,7 +6473,7 @@ var DropdownMenu3 = (_a) => {
6441
6473
  shouldFlip: true,
6442
6474
  isOpen: state.isOpen
6443
6475
  });
6444
- return /* @__PURE__ */ import_react66.default.createElement("div", null, /* @__PURE__ */ import_react66.default.createElement(import_interactions2.PressResponder, __spreadValues({
6476
+ return /* @__PURE__ */ import_react66.default.createElement("div", null, /* @__PURE__ */ import_react66.default.createElement(import_interactions3.PressResponder, __spreadValues({
6445
6477
  ref: triggerRef,
6446
6478
  onPress: () => state.toggle()
6447
6479
  }, menuTriggerProps), /* @__PURE__ */ import_react66.default.createElement(TriggerWrapper, null, trigger.props.children)), /* @__PURE__ */ import_react66.default.createElement(PopoverWrapper, __spreadValues({
@@ -6477,7 +6509,7 @@ DropdownMenu3.Section.displayName = "DropdownMenu.Section";
6477
6509
  var TriggerWrapper = (_a) => {
6478
6510
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
6479
6511
  const ref = import_react66.default.useRef(null);
6480
- const { pressProps } = (0, import_interactions2.usePress)(__spreadProps(__spreadValues({}, props), { ref }));
6512
+ const { pressProps } = (0, import_interactions3.usePress)(__spreadProps(__spreadValues({}, props), { ref }));
6481
6513
  const trigger = import_react66.default.Children.only(children);
6482
6514
  if (!trigger || !import_react66.default.isValidElement(trigger)) {
6483
6515
  throw new Error("<DropdownMenu.Trigger> must have valid child");
@@ -9332,6 +9364,7 @@ var system_default = __spreadProps(__spreadValues({}, molecules_exports), {
9332
9364
  TagLabel,
9333
9365
  Tailwindify,
9334
9366
  Template,
9367
+ TextButton,
9335
9368
  Textarea,
9336
9369
  TextareaBase,
9337
9370
  Timeline,
package/dist/system.mjs CHANGED
@@ -1635,6 +1635,7 @@ __export(molecules_exports, {
1635
1635
  TagLabel: () => TagLabel,
1636
1636
  Tailwindify: () => Tailwindify,
1637
1637
  Template: () => Template,
1638
+ TextButton: () => TextButton,
1638
1639
  Textarea: () => Textarea,
1639
1640
  TextareaBase: () => TextareaBase,
1640
1641
  Timeline: () => Timeline2,
@@ -1877,9 +1878,6 @@ var Select = {
1877
1878
  import React10 from "react";
1878
1879
  import omit from "lodash/omit";
1879
1880
 
1880
- // src/atoms/Alert/Alert.tsx
1881
- import React9 from "react";
1882
-
1883
1881
  // src/molecules/Button/Button.tsx
1884
1882
  import React7 from "react";
1885
1883
 
@@ -2706,6 +2704,7 @@ var Flexbox = Tailwindify(
2706
2704
 
2707
2705
  // src/molecules/Tooltip/Tooltip.tsx
2708
2706
  import React6 from "react";
2707
+ import { useFocusWithin } from "@react-aria/interactions";
2709
2708
  import { OverlayContainer, useOverlayPosition } from "@react-aria/overlays";
2710
2709
  import { useTooltip, useTooltipTrigger } from "@react-aria/tooltip";
2711
2710
  import { mergeProps } from "@react-aria/utils";
@@ -2843,6 +2842,9 @@ var Tooltip = (_a) => {
2843
2842
  shouldFlip,
2844
2843
  offset: ARROW_OFFSET
2845
2844
  });
2845
+ const { focusWithinProps } = useFocusWithin({
2846
+ onFocusWithinChange: (isFocusWithin) => isFocusWithin ? state.open() : state.close()
2847
+ });
2846
2848
  const handleClick = (e) => {
2847
2849
  var _a2, _b2;
2848
2850
  (_a2 = props.onClick) == null ? void 0 : _a2.call(props, e);
@@ -2871,6 +2873,16 @@ var Tooltip = (_a) => {
2871
2873
  return /* @__PURE__ */ React6.createElement("div", __spreadProps(__spreadValues({
2872
2874
  className: tw(`${inline ? "inline-block" : "block"}`)
2873
2875
  }, triggerProps), {
2876
+ onFocus: (e) => {
2877
+ var _a2, _b2;
2878
+ (_a2 = triggerProps.onFocus) == null ? void 0 : _a2.call(triggerProps, e);
2879
+ (_b2 = focusWithinProps.onFocus) == null ? void 0 : _b2.call(focusWithinProps, e);
2880
+ },
2881
+ onBlur: (e) => {
2882
+ var _a2, _b2;
2883
+ (_a2 = triggerProps.onBlur) == null ? void 0 : _a2.call(triggerProps, e);
2884
+ (_b2 = focusWithinProps.onBlur) == null ? void 0 : _b2.call(focusWithinProps, e);
2885
+ },
2874
2886
  onClick: handleClick,
2875
2887
  onMouseDown: handleMouseDown,
2876
2888
  onMouseUp: handleMouseUp,
@@ -2965,6 +2977,7 @@ var COLOR_CLASSNAMES = {
2965
2977
  "hover:ring-grey-50 hover:text-grey-80 disabled:text-grey-30 disabled:bg-grey-0 disabled:ring-grey-20"
2966
2978
  ),
2967
2979
  "ghost": ghostButtonStyle,
2980
+ "text": ghostButtonStyle,
2968
2981
  "secondary-ghost": tw(
2969
2982
  "text-grey-60 active:text-grey-50 focus-visible:text-grey-80 hover:text-grey-80 disabled:text-grey-30"
2970
2983
  )
@@ -3064,7 +3077,7 @@ var asButton = (Component, isDropdownButton) => {
3064
3077
  !isIconOnlyButton && COLOR_CLASSNAMES[kind],
3065
3078
  tw("inline-block border-0 rounded-sm transition whitespace-nowrap focus:outline-none relative", {
3066
3079
  "text-grey-70 p-2 active:text-grey-70 active:bg-transparent hover:text-grey-90 hover:bg-grey-0 focus-visible:text-grey-90 focus-visible:bg-grey-0 disabled:text-grey-20 disabled:bg-transparent": isIconOnlyButton,
3067
- "typography-default-strong": !dense && !isIconOnlyButton,
3080
+ "typography-default-strong": !dense && !isIconOnlyButton && kind !== "text",
3068
3081
  "typography-small-strong": dense && !isIconOnlyButton,
3069
3082
  "py-3 px-4": !dense && isButton,
3070
3083
  "py-2 px-3": dense && isButton,
@@ -3118,6 +3131,12 @@ var SecondaryGhostButton = React7.forwardRef((props, ref) => /* @__PURE__ */ Rea
3118
3131
  kind: "secondary-ghost"
3119
3132
  })));
3120
3133
  SecondaryGhostButton.displayName = "SecondaryGhostButton";
3134
+ var TextButton = React7.forwardRef((props, ref) => /* @__PURE__ */ React7.createElement(Button, __spreadProps(__spreadValues({
3135
+ ref
3136
+ }, props), {
3137
+ kind: "text"
3138
+ })));
3139
+ TextButton.displayName = "TextButton";
3121
3140
  var IconButton = React7.forwardRef((props, ref) => /* @__PURE__ */ React7.createElement(Button, __spreadProps(__spreadValues({
3122
3141
  ref
3123
3142
  }, props), {
@@ -3149,6 +3168,9 @@ var SecondaryDropdownButton = React7.forwardRef((props, ref) => /* @__PURE__ */
3149
3168
  })));
3150
3169
  SecondaryDropdownButton.displayName = "SecondaryDropdownButton";
3151
3170
 
3171
+ // src/atoms/Alert/Alert.tsx
3172
+ import React9 from "react";
3173
+
3152
3174
  // src/atoms/Typography/Typography.tsx
3153
3175
  var import_resolveTheme = __toESM(require_resolveTheme());
3154
3176
  import React8 from "react";
@@ -3276,14 +3298,18 @@ Alert.Dismiss = (_a) => {
3276
3298
  };
3277
3299
 
3278
3300
  // src/molecules/Alert/Alert.tsx
3279
- var Alert2 = ({ description, type, title, action, onDismiss, children }) => /* @__PURE__ */ React10.createElement(Alert, {
3301
+ var isLink = (action) => action.href !== void 0;
3302
+ var Alert2 = ({ description, type, title, onDismiss, children, action }) => /* @__PURE__ */ React10.createElement(Alert, {
3280
3303
  type,
3281
3304
  dense: Boolean(title)
3282
3305
  }, /* @__PURE__ */ React10.createElement(Alert.Icon, {
3283
3306
  type,
3284
3307
  dense: Boolean(title)
3285
- }), title && /* @__PURE__ */ React10.createElement(Alert.Title, null, title), /* @__PURE__ */ React10.createElement(Alert.Description, null, children || description), action && /* @__PURE__ */ React10.createElement(Alert.Actions, null, /* @__PURE__ */ React10.createElement(GhostButton, __spreadValues({
3308
+ }), title && /* @__PURE__ */ React10.createElement(Alert.Title, null, title), /* @__PURE__ */ React10.createElement(Alert.Description, null, children || description), action && /* @__PURE__ */ React10.createElement(Alert.Actions, null, !isLink(action) && /* @__PURE__ */ React10.createElement(GhostButton, __spreadValues({
3286
3309
  dense: true
3310
+ }, omit(action, "text")), action.text), isLink(action) && /* @__PURE__ */ React10.createElement(ExternalLinkButton, __spreadValues({
3311
+ dense: true,
3312
+ kind: "ghost"
3287
3313
  }, omit(action, "text")), action.text)), onDismiss && /* @__PURE__ */ React10.createElement(Alert.Dismiss, {
3288
3314
  onClick: onDismiss
3289
3315
  }));
@@ -4119,7 +4145,8 @@ var CompactCard = ({
4119
4145
  }), /* @__PURE__ */ React25.createElement(Card.Content, {
4120
4146
  dense: true
4121
4147
  }, clampTitle ? /* @__PURE__ */ React25.createElement(LineClamp, {
4122
- lines: clampTitle
4148
+ lines: clampTitle,
4149
+ wordBreak: "break-all"
4123
4150
  }, titleContent) : titleContent, /* @__PURE__ */ React25.createElement(Typography2.Caption, {
4124
4151
  color: "grey-70"
4125
4152
  }, children))), (action || link) && /* @__PURE__ */ React25.createElement(Card.Actions, {
@@ -4689,6 +4716,7 @@ var LabelText = ({
4689
4716
  content: helpTooltip,
4690
4717
  placement: helpTooltipPlacement
4691
4718
  }, /* @__PURE__ */ React36.createElement("span", {
4719
+ tabIndex: 0,
4692
4720
  className: tw("text-grey-30 flex items-center cursor-pointer ml-2")
4693
4721
  }, /* @__PURE__ */ React36.createElement(InlineIcon, {
4694
4722
  icon: import_questionMark.default,
@@ -6006,7 +6034,10 @@ var DropdownItem = (_a) => {
6006
6034
  content: tooltip,
6007
6035
  placement: tooltipPlacement,
6008
6036
  inline: false
6009
- }, itemContent) : itemContent);
6037
+ }, /* @__PURE__ */ React56.createElement("div", {
6038
+ tabIndex: 0,
6039
+ className: tw("grow")
6040
+ }, itemContent)) : itemContent);
6010
6041
  };
6011
6042
  Dropdown.Menu = DropdownMenu;
6012
6043
  Dropdown.Item = DropdownItem;
@@ -9195,6 +9226,7 @@ export {
9195
9226
  TagLabel,
9196
9227
  Tailwindify,
9197
9228
  Template,
9229
+ TextButton,
9198
9230
  Textarea,
9199
9231
  TextareaBase,
9200
9232
  Timeline2 as Timeline,