@uniformdev/design-system 18.34.0 → 18.34.1-alpha.57

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/esm/index.js CHANGED
@@ -306,6 +306,20 @@ var buttonSecondaryInvert = css`
306
306
 
307
307
  ${buttonRippleEffect({ hoverColor: "var(--gray-50)" })}
308
308
  `;
309
+ var buttonPrimaryInvert = css`
310
+ background: var(--white);
311
+ color: var(--brand-secondary-1);
312
+ box-shadow: 0 0 0 1px var(--brand-secondary-1);
313
+ transition: box-shadow var(--duration-fast) var(--timing-ease-out);
314
+ gap: var(--spacing-sm);
315
+
316
+ &:disabled {
317
+ color: var(--gray-300);
318
+ box-shadow: 0 0 0 1px var(--gray-300);
319
+ }
320
+
321
+ ${buttonRippleEffect({ hoverColor: "var(--gray-50)" })}
322
+ `;
309
323
  var buttonUnimportant = css`
310
324
  background: var(--brand-secondary-2);
311
325
  color: var(--brand-secondary-1);
@@ -1408,18 +1422,104 @@ var Heading = ({
1408
1422
  // src/components/Badges/Badge.styles.ts
1409
1423
  import { css as css10 } from "@emotion/react";
1410
1424
  var BadgeContainer = css10`
1411
- background: var(--brand-secondary-2);
1425
+ --caution-desc: rgb(161, 98, 7);
1426
+ --caution-title: rgb(133, 77, 14);
1427
+ --caution-container: rgb(254, 252, 232);
1428
+
1429
+ --danger-desc: rgb(185, 28, 28);
1430
+ --danger-title: rgb(153, 27, 27);
1431
+ --danger-container: rgb(254, 242, 242);
1432
+
1433
+ --info-desc: rgb(29, 78, 216);
1434
+ --info-title: rgb(30, 64, 175);
1435
+ --info-container: rgb(239, 246, 255);
1436
+
1437
+ --note-desc: var(--gray-700);
1438
+ --note-title: var(--gray-800);
1439
+ --note-container: var(--gray-50);
1440
+
1441
+ --success-desc: rgb(21, 128, 61);
1442
+ --success-title: rgb(22, 101, 52);
1443
+ --success-container: rgb(240, 253, 250);
1444
+
1412
1445
  border-radius: var(--rounded-base);
1413
- color: var(--brand-secondary-1);
1414
1446
  display: inline-block;
1447
+ `;
1448
+ var ExtraSmall = css10`
1449
+ padding: var(--spacing-xs) var(--spacing-sm);
1450
+ font-size: var(--fs-xxs);
1451
+ `;
1452
+ var Small = css10`
1453
+ padding: var(--spacing-xs) var(--spacing-sm);
1454
+ font-size: var(--fs-xs);
1455
+ `;
1456
+ var Base = css10`
1415
1457
  padding: var(--spacing-sm) var(--spacing-base);
1416
1458
  font-size: var(--fs-sm);
1417
1459
  `;
1460
+ var Caution = css10`
1461
+ background-color: var(--caution-container);
1462
+ color: var(--caution-title);
1463
+ `;
1464
+ var Info = css10`
1465
+ background-color: var(--info-container);
1466
+ color: var(--info-title);
1467
+ `;
1468
+ var Note = css10`
1469
+ background-color: var(--note-container);
1470
+ color: var(--note-title);
1471
+ `;
1472
+ var Success = css10`
1473
+ background-color: var(--success-container);
1474
+ color: var(--success-title);
1475
+ `;
1476
+ var Error2 = css10`
1477
+ background-color: var(--danger-container);
1478
+ color: var(--danger-title);
1479
+ `;
1480
+ var Unimportant = css10`
1481
+ background: var(--brand-secondary-2);
1482
+ color: var(--brand-secondary-1);
1483
+ `;
1484
+ var UppercaseText = css10`
1485
+ text-transform: uppercase;
1486
+ `;
1418
1487
 
1419
1488
  // src/components/Badges/Badge.tsx
1420
1489
  import { jsx as jsx9 } from "@emotion/react/jsx-runtime";
1421
- var Badge = ({ text }) => {
1422
- return /* @__PURE__ */ jsx9("span", { css: BadgeContainer, children: text });
1490
+ var Badge = ({
1491
+ text,
1492
+ theme = "unimportant",
1493
+ size = "base",
1494
+ uppercaseText,
1495
+ ...props
1496
+ }) => {
1497
+ const themeStyles = {
1498
+ caution: Caution,
1499
+ error: Error2,
1500
+ info: Info,
1501
+ note: Note,
1502
+ success: Success,
1503
+ unimportant: Unimportant
1504
+ };
1505
+ const sizeStyles = {
1506
+ xs: ExtraSmall,
1507
+ sm: Small,
1508
+ base: Base
1509
+ };
1510
+ return /* @__PURE__ */ jsx9(
1511
+ "span",
1512
+ {
1513
+ css: [
1514
+ BadgeContainer,
1515
+ themeStyles[theme],
1516
+ sizeStyles[size],
1517
+ uppercaseText ? UppercaseText : void 0
1518
+ ],
1519
+ ...props,
1520
+ children: text
1521
+ }
1522
+ );
1423
1523
  };
1424
1524
 
1425
1525
  // src/components/Typography/Link.tsx
@@ -10520,6 +10620,7 @@ var Button = React5.forwardRef(
10520
10620
  ({ buttonType = "primary", size = "md", children, ...props }, ref) => {
10521
10621
  const buttonTheme = {
10522
10622
  primary: buttonPrimary,
10623
+ primaryInvert: buttonPrimaryInvert,
10523
10624
  secondary: buttonSecondary,
10524
10625
  secondaryInvert: buttonSecondaryInvert,
10525
10626
  ghost: buttonGhost,
@@ -12829,8 +12930,8 @@ var loadingDot = css46`
12829
12930
 
12830
12931
  // src/components/LoadingIndicator/LoadingIndicator.tsx
12831
12932
  import { jsx as jsx57, jsxs as jsxs35 } from "@emotion/react/jsx-runtime";
12832
- var LoadingIndicator = () => {
12833
- return /* @__PURE__ */ jsxs35("div", { css: loader, role: "alert", "data-test-id": "loading-indicator", children: [
12933
+ var LoadingIndicator = ({ ...props }) => {
12934
+ return /* @__PURE__ */ jsxs35("div", { role: "alert", css: loader, "data-test-id": "loading-indicator", ...props, children: [
12834
12935
  /* @__PURE__ */ jsx57("span", { css: loadingDot }),
12835
12936
  /* @__PURE__ */ jsx57("span", { css: loadingDot }),
12836
12937
  /* @__PURE__ */ jsx57("span", { css: loadingDot })
@@ -13360,6 +13461,16 @@ var IntegrationModalImage = css52`
13360
13461
  import { jsx as jsx65, jsxs as jsxs42 } from "@emotion/react/jsx-runtime";
13361
13462
  var IntegrationModalIcon = ({ icon, name, ...imgProps }) => {
13362
13463
  const CompIcon = icon && typeof icon !== "string" ? icon : null;
13464
+ let iconSrc = void 0;
13465
+ if (icon && typeof icon === "string") {
13466
+ try {
13467
+ const iconUrl = new URL(icon);
13468
+ if (iconUrl.protocol === "data:" || iconUrl.protocol === "https:") {
13469
+ iconSrc = iconUrl.href;
13470
+ }
13471
+ } catch (e) {
13472
+ }
13473
+ }
13363
13474
  return /* @__PURE__ */ jsxs42("div", { css: IntegrationModalIconContainer, children: [
13364
13475
  /* @__PURE__ */ jsxs42("svg", { width: "49", height: "57", fill: "none", xmlns: "http://www.w3.org/2000/svg", role: "img", children: [
13365
13476
  /* @__PURE__ */ jsx65(
@@ -13379,7 +13490,7 @@ var IntegrationModalIcon = ({ icon, name, ...imgProps }) => {
13379
13490
  CompIcon ? /* @__PURE__ */ jsx65(CompIcon, { role: "img", css: IntegrationModalImage, ...imgProps }) : /* @__PURE__ */ jsx65(
13380
13491
  "img",
13381
13492
  {
13382
- src: icon,
13493
+ src: iconSrc,
13383
13494
  alt: name,
13384
13495
  "data-test-id": "integration-modal-icon",
13385
13496
  css: IntegrationModalImage,
@@ -15392,6 +15503,7 @@ export {
15392
15503
  buttonGhost,
15393
15504
  buttonGhostDestructive,
15394
15505
  buttonPrimary,
15506
+ buttonPrimaryInvert,
15395
15507
  buttonRippleEffect,
15396
15508
  buttonSecondary,
15397
15509
  buttonSecondaryInvert,
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import React__default, { RefObject, ReactNode, HTMLAttributes, FocusEventHandler, ChangeEvent } from 'react';
2
+ import React__default, { RefObject, HTMLAttributes, ReactNode, FocusEventHandler, ChangeEvent } from 'react';
3
3
  import { GroupBase } from 'react-select';
4
4
  export { ActionMeta, FormatOptionLabelContext, FormatOptionLabelMeta, GetOptionLabel, GetOptionValue, GroupBase, GroupHeadingProps, GroupProps, MenuListProps, MenuPlacement, MultiValue, MultiValueGenericProps, MultiValueProps, MultiValueRemoveProps, OnChangeValue, OptionContext, OptionProps, Options, OptionsOrGroups } from 'react-select';
5
5
  import * as _emotion_react from '@emotion/react';
@@ -68,6 +68,7 @@ declare const buttonRippleEffect: (props: {
68
68
  declare const buttonPrimary: _emotion_react.SerializedStyles;
69
69
  declare const buttonSecondary: _emotion_react.SerializedStyles;
70
70
  declare const buttonSecondaryInvert: _emotion_react.SerializedStyles;
71
+ declare const buttonPrimaryInvert: _emotion_react.SerializedStyles;
71
72
  declare const buttonUnimportant: _emotion_react.SerializedStyles;
72
73
  declare const buttonGhost: _emotion_react.SerializedStyles;
73
74
  declare const buttonGhostDestructive: _emotion_react.SerializedStyles;
@@ -20155,15 +20156,29 @@ type AnimationFileProps = LottieComponentProps & {
20155
20156
  */
20156
20157
  declare const AnimationFile: ({ label, loop, autoplay, width, height, ...props }: AnimationFileProps) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
20157
20158
 
20159
+ type BadgeThemeProps = 'caution' | 'info' | 'note' | 'success' | 'error' | 'unimportant';
20160
+ type SizeProps = 'xs' | 'sm' | 'base';
20158
20161
  type BadgeProps = {
20159
20162
  /** sets the text of the badge */
20160
20163
  text: string;
20161
- };
20164
+ /** sets the theme of the badge
20165
+ * @default unimportant
20166
+ */
20167
+ theme?: BadgeThemeProps;
20168
+ /** sets the size of the badge
20169
+ * @default 'base'
20170
+ */
20171
+ size?: SizeProps;
20172
+ /** sets text to uppercase */
20173
+ uppercaseText?: boolean;
20174
+ } & HTMLAttributes<HTMLSpanElement>;
20175
+ type BadgeThemeStyleProps = Record<BadgeThemeProps, SerializedStyles>;
20176
+ type BadgeSizeProps = Record<SizeProps, SerializedStyles>;
20162
20177
  /**
20163
20178
  * Uniform Badge Component
20164
- * @example <Badge text="My badge" />
20179
+ * @example <Badge text="My badge" theme="success" size="base" />
20165
20180
  */
20166
- declare const Badge: ({ text }: BadgeProps) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
20181
+ declare const Badge: ({ text, theme, size, uppercaseText, ...props }: BadgeProps) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
20167
20182
 
20168
20183
  type BannerType = 'note' | 'info' | 'caution' | 'danger' | 'success';
20169
20184
  type BannerProps = React__default.HTMLAttributes<HTMLDivElement> & {
@@ -20210,7 +20225,7 @@ declare const UniformBadge: ({ theme, ...props }: React__default.SVGAttributes<S
20210
20225
  declare const UniformLogo: ({ theme, ...props }: UniformLogoProps & React.SVGAttributes<SVGElement>) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
20211
20226
 
20212
20227
  /** Button themes that are available to use with our brand */
20213
- type ButtonThemeProps$1 = 'primary' | 'secondary' | 'tertiary' | 'unimportant' | 'ghost' | 'ghostDestructive' | 'secondaryInvert';
20228
+ type ButtonThemeProps$1 = 'primary' | 'secondary' | 'tertiary' | 'unimportant' | 'ghost' | 'ghostDestructive' | 'primaryInvert' | 'secondaryInvert';
20214
20229
  /** Button sizes that are available to use with our brand */
20215
20230
  type ButtonSizeProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
20216
20231
  type ButtonProps = ButtonProps$1 & {
@@ -20986,7 +21001,7 @@ declare const ScrollableListItem: ({ buttonText, active, ...props }: ScrollableL
20986
21001
  * Loading Indicator
20987
21002
  * @example <LoadingIndicator />
20988
21003
  */
20989
- declare const LoadingIndicator: () => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
21004
+ declare const LoadingIndicator: ({ ...props }: HTMLAttributes<HTMLDivElement>) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
20990
21005
 
20991
21006
  interface LoadingOverlayProps {
20992
21007
  /** sets whether to display the loading overlay components */
@@ -21890,4 +21905,4 @@ type StatusBulletProps = React$1.HTMLAttributes<HTMLSpanElement> & {
21890
21905
  };
21891
21906
  declare const StatusBullet: ({ status, hideText, size, message, ...props }: StatusBulletProps) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
21892
21907
 
21893
- export { ActionButtonsProps, AddButton, AddButtonProps, AddListButton, AddListButtonProps, AddListButtonThemeProps, AnimationFile, AnimationFileProps, ArrowPositionProps, Badge, BadgeProps, Banner, BannerProps, BannerType, BoxHeightProps, BreakpointSize, BreakpointsMap, Button, ButtonProps, ButtonSizeProps, ButtonThemeProps$1 as ButtonThemeProps, ButtonWithMenu, ButtonWithMenuProps, Callout, CalloutProps, CalloutType, Caption, CaptionProps, Card, CardContainer, CardContainerBgColorProps, CardContainerProps, CardProps, CheckboxWithInfo, CheckboxWithInforProps, ChildFunction, ComboBoxGroupBase, ConnectToDataElementButton, ConnectToDataElementButtonProps, Container, ContainerProps, Counter, CounterProps, CreateTeamIntegrationTile, CreateTeamIntegrationTileProps, DashedBox, DashedBoxProps, Details, DetailsProps, Drawer, DrawerContextValue, DrawerItem, DrawerProps, DrawerProvider, DrawerRenderer, DrawerRendererItemProps, DrawerRendererProps, EditTeamIntegrationTile, EditTeamIntegrationTileProps, ErrorMessage, ErrorMessageProps, Fieldset, FieldsetProps, Heading, HeadingProps, HexModalBackground, Icon, IconColor, IconName, IconProps, IconType, IconsProvider, InfoMessage, InfoMessageProps, InlineAlert, InlineAlertProps, Input, InputComboBox, InputComboBoxOption, InputComboBoxProps, InputInlineSelect, InputInlineSelectOption, InputInlineSelectProps, InputKeywordSearch, InputKeywordSearchProps, InputProps, InputSelect, InputSelectProps, InputToggle, InputToggleProps, IntegrationComingSoon, IntegrationComingSoonProps, IntegrationHeaderSection, IntegrationHeaderSectionProps, IntegrationLoadingTile, IntegrationLoadingTileProps, IntegrationModalHeader, IntegrationModalHeaderProps, IntegrationModalIcon, IntegrationModalIconProps, IntegrationTile, IntegrationTileProps, JsonEditor, JsonEditorProps, Label, LabelProps, Legend, LegendProps, LevelProps, LimitsBar, LimitsBarProps, Link, LinkColorProps, LinkList, LinkListProps, LinkManagerWithRefType, LinkProps, LinkWithRef, LoadingIcon, LoadingIconProps, LoadingIndicator, LoadingOverlay, LoadingOverlayProps, Menu, MenuContext, MenuItem, MenuItemProps, MenuItemSeparator, MenuItemTextThemeProps, MenuProps, PageHeaderSection, PageHeaderSectionProps, Paragraph, ParagraphProps, ParameterDataConnectButtonProps, ParameterDataResource, ParameterDrawerHeader, ParameterDrawerHeaderProps, ParameterGroup, ParameterGroupProps, ParameterImage, ParameterImageInner, ParameterImageProps, ParameterInput, ParameterInputInner, ParameterInputProps, ParameterLabel, ParameterLabelProps, ParameterLink, ParameterLinkInner, ParameterLinkProps, ParameterMenuButton, ParameterMenuButtonProps, ParameterNameAndPublicIdInput, ParameterNameAndPublicIdInputProps, ParameterOverrideMarker, ParameterRichText, ParameterRichTextInner, ParameterRichTextProps, ParameterSelect, ParameterSelectInner, ParameterSelectProps, ParameterShell, ParameterShellContext, ParameterShellPlaceholder, ParameterShellProps, ParameterTextarea, ParameterTextareaInner, ParameterTextareaProps, ParameterToggle, ParameterToggleInner, ParameterToggleProps, Popover, PopoverProps, ProgressList, ProgressListItem, ProgressListItemProps, ProgressListProps, RegisterDrawerProps, ResolveIcon, ResolveIconProps, ScrollableItemProps, ScrollableList, ScrollableListInputItem, ScrollableListItem, ScrollableListItemProps, ScrollableListProps, SegmentedControl, SegmentedControlOption, SegmentedControlProps, ShortcutContext, ShortcutRevealer, Skeleton, SkeletonProps, StatusBullet, StatusBulletProps, StatusTypeProps, Switch, SwitchProps, TabButton, TabButtonGroup, TabButtonProps, TabContent, TabContentProps, Table, TableBody, TableBodyProps, TableCellData, TableCellDataProps, TableCellHead, TableCellHeadProps, TableFoot, TableFootProps, TableHead, TableHeadProps, TableProps, TableRow, TableRowProps, Tabs, TabsProps, TextAlignProps, Textarea, TextareaProps, Theme, ThemeProps, TileContainer, TileContainerProps, Tooltip, TooltipProps, UniformBadge, UniformLogo, UniformLogoProps, UseShortcutOptions, VerticalRhythm, VerticalRhythmProps, WarningMessage, WarningMessageProps, borderTopIcon, breakpoints, button, buttonGhost, buttonGhostDestructive, buttonPrimary, buttonRippleEffect, buttonSecondary, buttonSecondaryInvert, buttonTertiary, buttonUnimportant, canvasAlertIcon, cardIcon, customIcons, extractParameterProps, fadeIn, fadeInBottom, fadeInLtr, fadeInRtl, fadeInTop, fadeOutBottom, fullWidthScreenIcon, growSubtle, imageTextIcon, infoFilledIcon, input, inputError, inputSelect, isMacLike, labelText, loader as loaderAnimationData, macifyShortcut, mq, numberInput, rectangleRoundedIcon, ripple, scrollbarStyles, skeletonLoading, slideInTtb, spinner as spinnerAnimationData, supports, textInput, useBreakpoint, useCloseCurrentDrawer, useCurrentDrawerRenderer, useCurrentTab, useDrawer, useIconContext, useMenuContext, useOutsideClick, useParameterShell, useShortcut, warningIcon };
21908
+ export { ActionButtonsProps, AddButton, AddButtonProps, AddListButton, AddListButtonProps, AddListButtonThemeProps, AnimationFile, AnimationFileProps, ArrowPositionProps, Badge, BadgeProps, BadgeSizeProps, BadgeThemeProps, BadgeThemeStyleProps, Banner, BannerProps, BannerType, BoxHeightProps, BreakpointSize, BreakpointsMap, Button, ButtonProps, ButtonSizeProps, ButtonThemeProps$1 as ButtonThemeProps, ButtonWithMenu, ButtonWithMenuProps, Callout, CalloutProps, CalloutType, Caption, CaptionProps, Card, CardContainer, CardContainerBgColorProps, CardContainerProps, CardProps, CheckboxWithInfo, CheckboxWithInforProps, ChildFunction, ComboBoxGroupBase, ConnectToDataElementButton, ConnectToDataElementButtonProps, Container, ContainerProps, Counter, CounterProps, CreateTeamIntegrationTile, CreateTeamIntegrationTileProps, DashedBox, DashedBoxProps, Details, DetailsProps, Drawer, DrawerContextValue, DrawerItem, DrawerProps, DrawerProvider, DrawerRenderer, DrawerRendererItemProps, DrawerRendererProps, EditTeamIntegrationTile, EditTeamIntegrationTileProps, ErrorMessage, ErrorMessageProps, Fieldset, FieldsetProps, Heading, HeadingProps, HexModalBackground, Icon, IconColor, IconName, IconProps, IconType, IconsProvider, InfoMessage, InfoMessageProps, InlineAlert, InlineAlertProps, Input, InputComboBox, InputComboBoxOption, InputComboBoxProps, InputInlineSelect, InputInlineSelectOption, InputInlineSelectProps, InputKeywordSearch, InputKeywordSearchProps, InputProps, InputSelect, InputSelectProps, InputToggle, InputToggleProps, IntegrationComingSoon, IntegrationComingSoonProps, IntegrationHeaderSection, IntegrationHeaderSectionProps, IntegrationLoadingTile, IntegrationLoadingTileProps, IntegrationModalHeader, IntegrationModalHeaderProps, IntegrationModalIcon, IntegrationModalIconProps, IntegrationTile, IntegrationTileProps, JsonEditor, JsonEditorProps, Label, LabelProps, Legend, LegendProps, LevelProps, LimitsBar, LimitsBarProps, Link, LinkColorProps, LinkList, LinkListProps, LinkManagerWithRefType, LinkProps, LinkWithRef, LoadingIcon, LoadingIconProps, LoadingIndicator, LoadingOverlay, LoadingOverlayProps, Menu, MenuContext, MenuItem, MenuItemProps, MenuItemSeparator, MenuItemTextThemeProps, MenuProps, PageHeaderSection, PageHeaderSectionProps, Paragraph, ParagraphProps, ParameterDataConnectButtonProps, ParameterDataResource, ParameterDrawerHeader, ParameterDrawerHeaderProps, ParameterGroup, ParameterGroupProps, ParameterImage, ParameterImageInner, ParameterImageProps, ParameterInput, ParameterInputInner, ParameterInputProps, ParameterLabel, ParameterLabelProps, ParameterLink, ParameterLinkInner, ParameterLinkProps, ParameterMenuButton, ParameterMenuButtonProps, ParameterNameAndPublicIdInput, ParameterNameAndPublicIdInputProps, ParameterOverrideMarker, ParameterRichText, ParameterRichTextInner, ParameterRichTextProps, ParameterSelect, ParameterSelectInner, ParameterSelectProps, ParameterShell, ParameterShellContext, ParameterShellPlaceholder, ParameterShellProps, ParameterTextarea, ParameterTextareaInner, ParameterTextareaProps, ParameterToggle, ParameterToggleInner, ParameterToggleProps, Popover, PopoverProps, ProgressList, ProgressListItem, ProgressListItemProps, ProgressListProps, RegisterDrawerProps, ResolveIcon, ResolveIconProps, ScrollableItemProps, ScrollableList, ScrollableListInputItem, ScrollableListItem, ScrollableListItemProps, ScrollableListProps, SegmentedControl, SegmentedControlOption, SegmentedControlProps, ShortcutContext, ShortcutRevealer, Skeleton, SkeletonProps, StatusBullet, StatusBulletProps, StatusTypeProps, Switch, SwitchProps, TabButton, TabButtonGroup, TabButtonProps, TabContent, TabContentProps, Table, TableBody, TableBodyProps, TableCellData, TableCellDataProps, TableCellHead, TableCellHeadProps, TableFoot, TableFootProps, TableHead, TableHeadProps, TableProps, TableRow, TableRowProps, Tabs, TabsProps, TextAlignProps, Textarea, TextareaProps, Theme, ThemeProps, TileContainer, TileContainerProps, Tooltip, TooltipProps, UniformBadge, UniformLogo, UniformLogoProps, UseShortcutOptions, VerticalRhythm, VerticalRhythmProps, WarningMessage, WarningMessageProps, borderTopIcon, breakpoints, button, buttonGhost, buttonGhostDestructive, buttonPrimary, buttonPrimaryInvert, buttonRippleEffect, buttonSecondary, buttonSecondaryInvert, buttonTertiary, buttonUnimportant, canvasAlertIcon, cardIcon, customIcons, extractParameterProps, fadeIn, fadeInBottom, fadeInLtr, fadeInRtl, fadeInTop, fadeOutBottom, fullWidthScreenIcon, growSubtle, imageTextIcon, infoFilledIcon, input, inputError, inputSelect, isMacLike, labelText, loader as loaderAnimationData, macifyShortcut, mq, numberInput, rectangleRoundedIcon, ripple, scrollbarStyles, skeletonLoading, slideInTtb, spinner as spinnerAnimationData, supports, textInput, useBreakpoint, useCloseCurrentDrawer, useCurrentDrawerRenderer, useCurrentTab, useDrawer, useIconContext, useMenuContext, useOutsideClick, useParameterShell, useShortcut, warningIcon };
package/dist/index.js CHANGED
@@ -150,6 +150,7 @@ __export(src_exports, {
150
150
  buttonGhost: () => buttonGhost,
151
151
  buttonGhostDestructive: () => buttonGhostDestructive,
152
152
  buttonPrimary: () => buttonPrimary,
153
+ buttonPrimaryInvert: () => buttonPrimaryInvert,
153
154
  buttonRippleEffect: () => buttonRippleEffect,
154
155
  buttonSecondary: () => buttonSecondary,
155
156
  buttonSecondaryInvert: () => buttonSecondaryInvert,
@@ -508,6 +509,20 @@ var buttonSecondaryInvert = import_react3.css`
508
509
 
509
510
  ${buttonRippleEffect({ hoverColor: "var(--gray-50)" })}
510
511
  `;
512
+ var buttonPrimaryInvert = import_react3.css`
513
+ background: var(--white);
514
+ color: var(--brand-secondary-1);
515
+ box-shadow: 0 0 0 1px var(--brand-secondary-1);
516
+ transition: box-shadow var(--duration-fast) var(--timing-ease-out);
517
+ gap: var(--spacing-sm);
518
+
519
+ &:disabled {
520
+ color: var(--gray-300);
521
+ box-shadow: 0 0 0 1px var(--gray-300);
522
+ }
523
+
524
+ ${buttonRippleEffect({ hoverColor: "var(--gray-50)" })}
525
+ `;
511
526
  var buttonUnimportant = import_react3.css`
512
527
  background: var(--brand-secondary-2);
513
528
  color: var(--brand-secondary-1);
@@ -1610,18 +1625,104 @@ var Heading = ({
1610
1625
  // src/components/Badges/Badge.styles.ts
1611
1626
  var import_react16 = require("@emotion/react");
1612
1627
  var BadgeContainer = import_react16.css`
1613
- background: var(--brand-secondary-2);
1628
+ --caution-desc: rgb(161, 98, 7);
1629
+ --caution-title: rgb(133, 77, 14);
1630
+ --caution-container: rgb(254, 252, 232);
1631
+
1632
+ --danger-desc: rgb(185, 28, 28);
1633
+ --danger-title: rgb(153, 27, 27);
1634
+ --danger-container: rgb(254, 242, 242);
1635
+
1636
+ --info-desc: rgb(29, 78, 216);
1637
+ --info-title: rgb(30, 64, 175);
1638
+ --info-container: rgb(239, 246, 255);
1639
+
1640
+ --note-desc: var(--gray-700);
1641
+ --note-title: var(--gray-800);
1642
+ --note-container: var(--gray-50);
1643
+
1644
+ --success-desc: rgb(21, 128, 61);
1645
+ --success-title: rgb(22, 101, 52);
1646
+ --success-container: rgb(240, 253, 250);
1647
+
1614
1648
  border-radius: var(--rounded-base);
1615
- color: var(--brand-secondary-1);
1616
1649
  display: inline-block;
1650
+ `;
1651
+ var ExtraSmall = import_react16.css`
1652
+ padding: var(--spacing-xs) var(--spacing-sm);
1653
+ font-size: var(--fs-xxs);
1654
+ `;
1655
+ var Small = import_react16.css`
1656
+ padding: var(--spacing-xs) var(--spacing-sm);
1657
+ font-size: var(--fs-xs);
1658
+ `;
1659
+ var Base = import_react16.css`
1617
1660
  padding: var(--spacing-sm) var(--spacing-base);
1618
1661
  font-size: var(--fs-sm);
1619
1662
  `;
1663
+ var Caution = import_react16.css`
1664
+ background-color: var(--caution-container);
1665
+ color: var(--caution-title);
1666
+ `;
1667
+ var Info = import_react16.css`
1668
+ background-color: var(--info-container);
1669
+ color: var(--info-title);
1670
+ `;
1671
+ var Note = import_react16.css`
1672
+ background-color: var(--note-container);
1673
+ color: var(--note-title);
1674
+ `;
1675
+ var Success = import_react16.css`
1676
+ background-color: var(--success-container);
1677
+ color: var(--success-title);
1678
+ `;
1679
+ var Error2 = import_react16.css`
1680
+ background-color: var(--danger-container);
1681
+ color: var(--danger-title);
1682
+ `;
1683
+ var Unimportant = import_react16.css`
1684
+ background: var(--brand-secondary-2);
1685
+ color: var(--brand-secondary-1);
1686
+ `;
1687
+ var UppercaseText = import_react16.css`
1688
+ text-transform: uppercase;
1689
+ `;
1620
1690
 
1621
1691
  // src/components/Badges/Badge.tsx
1622
1692
  var import_jsx_runtime8 = require("@emotion/react/jsx-runtime");
1623
- var Badge = ({ text }) => {
1624
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { css: BadgeContainer, children: text });
1693
+ var Badge = ({
1694
+ text,
1695
+ theme = "unimportant",
1696
+ size = "base",
1697
+ uppercaseText,
1698
+ ...props
1699
+ }) => {
1700
+ const themeStyles = {
1701
+ caution: Caution,
1702
+ error: Error2,
1703
+ info: Info,
1704
+ note: Note,
1705
+ success: Success,
1706
+ unimportant: Unimportant
1707
+ };
1708
+ const sizeStyles = {
1709
+ xs: ExtraSmall,
1710
+ sm: Small,
1711
+ base: Base
1712
+ };
1713
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1714
+ "span",
1715
+ {
1716
+ css: [
1717
+ BadgeContainer,
1718
+ themeStyles[theme],
1719
+ sizeStyles[size],
1720
+ uppercaseText ? UppercaseText : void 0
1721
+ ],
1722
+ ...props,
1723
+ children: text
1724
+ }
1725
+ );
1625
1726
  };
1626
1727
 
1627
1728
  // src/components/Typography/Link.tsx
@@ -10722,6 +10823,7 @@ var Button = React5.forwardRef(
10722
10823
  ({ buttonType = "primary", size = "md", children, ...props }, ref) => {
10723
10824
  const buttonTheme = {
10724
10825
  primary: buttonPrimary,
10826
+ primaryInvert: buttonPrimaryInvert,
10725
10827
  secondary: buttonSecondary,
10726
10828
  secondaryInvert: buttonSecondaryInvert,
10727
10829
  ghost: buttonGhost,
@@ -13027,8 +13129,8 @@ var loadingDot = import_react59.css`
13027
13129
 
13028
13130
  // src/components/LoadingIndicator/LoadingIndicator.tsx
13029
13131
  var import_jsx_runtime56 = require("@emotion/react/jsx-runtime");
13030
- var LoadingIndicator = () => {
13031
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { css: loader, role: "alert", "data-test-id": "loading-indicator", children: [
13132
+ var LoadingIndicator = ({ ...props }) => {
13133
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { role: "alert", css: loader, "data-test-id": "loading-indicator", ...props, children: [
13032
13134
  /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { css: loadingDot }),
13033
13135
  /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { css: loadingDot }),
13034
13136
  /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { css: loadingDot })
@@ -13558,6 +13660,16 @@ var IntegrationModalImage = import_react67.css`
13558
13660
  var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
13559
13661
  var IntegrationModalIcon = ({ icon, name, ...imgProps }) => {
13560
13662
  const CompIcon = icon && typeof icon !== "string" ? icon : null;
13663
+ let iconSrc = void 0;
13664
+ if (icon && typeof icon === "string") {
13665
+ try {
13666
+ const iconUrl = new URL(icon);
13667
+ if (iconUrl.protocol === "data:" || iconUrl.protocol === "https:") {
13668
+ iconSrc = iconUrl.href;
13669
+ }
13670
+ } catch (e) {
13671
+ }
13672
+ }
13561
13673
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { css: IntegrationModalIconContainer, children: [
13562
13674
  /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("svg", { width: "49", height: "57", fill: "none", xmlns: "http://www.w3.org/2000/svg", role: "img", children: [
13563
13675
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
@@ -13577,7 +13689,7 @@ var IntegrationModalIcon = ({ icon, name, ...imgProps }) => {
13577
13689
  CompIcon ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(CompIcon, { role: "img", css: IntegrationModalImage, ...imgProps }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13578
13690
  "img",
13579
13691
  {
13580
- src: icon,
13692
+ src: iconSrc,
13581
13693
  alt: name,
13582
13694
  "data-test-id": "integration-modal-icon",
13583
13695
  css: IntegrationModalImage,
@@ -15577,6 +15689,7 @@ var StatusBullet = ({
15577
15689
  buttonGhost,
15578
15690
  buttonGhostDestructive,
15579
15691
  buttonPrimary,
15692
+ buttonPrimaryInvert,
15580
15693
  buttonRippleEffect,
15581
15694
  buttonSecondary,
15582
15695
  buttonSecondaryInvert,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/design-system",
3
- "version": "18.34.0",
3
+ "version": "18.34.1-alpha.57+d06712d70",
4
4
  "description": "Uniform design system components",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "./dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "@storybook/addon-docs": "6.5.16",
23
23
  "@storybook/client-api": "6.5.16",
24
24
  "@storybook/react": "6.5.16",
25
- "@types/react": "18.0.31",
25
+ "@types/react": "18.0.33",
26
26
  "autoprefixer": "10.4.14",
27
27
  "hygen": "6.2.11",
28
28
  "postcss": "8.4.21",
@@ -54,5 +54,5 @@
54
54
  "publishConfig": {
55
55
  "access": "public"
56
56
  },
57
- "gitHead": "563ab31aa4308102c988bea321028e73efe836d0"
57
+ "gitHead": "d06712d70880e665966897d71c92444ea1dea80e"
58
58
  }