@uniformdev/design-system 20.24.1-alpha.0 → 20.24.4-alpha.26

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
@@ -4167,6 +4167,7 @@ var menuTriggerStyles = css25`
4167
4167
  background: transparent;
4168
4168
  padding: var(--spacing-xs);
4169
4169
  color: var(--gray-600);
4170
+ border-radius: var(--rounded-sm);
4170
4171
  transition: color var(--duration-fast) var(--timing-ease-out);
4171
4172
 
4172
4173
  &:focus,
@@ -4174,6 +4175,10 @@ var menuTriggerStyles = css25`
4174
4175
  outline: none;
4175
4176
  color: var(--typography-base);
4176
4177
  }
4178
+
4179
+ &:focus-visible {
4180
+ outline: 2px solid var(--accent-dark-active);
4181
+ }
4177
4182
  `;
4178
4183
 
4179
4184
  // src/components/Menu/Menu.tsx
@@ -7067,6 +7072,8 @@ var trigger = css50`
7067
7072
  margin: 2px 0;
7068
7073
  `;
7069
7074
  var popover = css50`
7075
+ border-radius: var(--rounded-sm);
7076
+ box-shadow: var(--elevation-100);
7070
7077
  padding: var(--spacing-md);
7071
7078
  max-width: unset;
7072
7079
  container-type: inline-size;
@@ -7266,6 +7273,7 @@ var DateTimePicker = ({
7266
7273
  offset = 8,
7267
7274
  testId = "datetime-picker",
7268
7275
  placement = "bottom-start",
7276
+ portal = false,
7269
7277
  ...props
7270
7278
  }) => {
7271
7279
  const popover2 = usePopoverStore({ placement });
@@ -7374,6 +7382,7 @@ var DateTimePicker = ({
7374
7382
  unmountOnHide: true,
7375
7383
  "aria-label": "Pick a date",
7376
7384
  css: [Popover, popover],
7385
+ portal,
7377
7386
  children: [
7378
7387
  /* @__PURE__ */ jsxs40("div", { css: popoverInnerContent, children: [
7379
7388
  /* @__PURE__ */ jsx63("div", { css: calendarSection, children: /* @__PURE__ */ jsx63(
@@ -8238,6 +8247,11 @@ var iconButton = css58`
8238
8247
  justify-content: center;
8239
8248
  width: var(--button-size);
8240
8249
  height: var(--button-size);
8250
+
8251
+ &:disabled {
8252
+ filter: grayscale(100%);
8253
+ opacity: 0.5;
8254
+ }
8241
8255
  `;
8242
8256
  var sizes2 = {
8243
8257
  xs: css58`
@@ -14586,7 +14600,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
14586
14600
  /* @__PURE__ */ jsxs86(
14587
14601
  Menu,
14588
14602
  {
14589
- menuTrigger: /* @__PURE__ */ jsxs86("button", { css: [richTextToolbarButton, textStyleButton], title: "Text styles", children: [
14603
+ menuTrigger: /* @__PURE__ */ jsxs86("button", { css: [richTextToolbarButton, textStyleButton], title: "Text styles", type: "button", children: [
14590
14604
  visibleTextualElements.some((element) => element.type === activeElement) ? getLabelForElement(activeElement) : getLabelForElement("paragraph"),
14591
14605
  " ",
14592
14606
  /* @__PURE__ */ jsx128(Icon, { icon: "chevron-down", css: [toolbarIcon, toolbarChevron], size: "1rem" })
@@ -14619,6 +14633,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
14619
14633
  "button",
14620
14634
  {
14621
14635
  "data-testid": `formatting-button-${format.type}`,
14636
+ type: "button",
14622
14637
  onClick: () => {
14623
14638
  editor.dispatchCommand(FORMAT_TEXT_COMMAND, format.type);
14624
14639
  },
@@ -14632,7 +14647,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
14632
14647
  visibleFormatsWithoutIcon.length > 0 ? /* @__PURE__ */ jsx128(
14633
14648
  Menu,
14634
14649
  {
14635
- menuTrigger: /* @__PURE__ */ jsx128("button", { css: richTextToolbarButton, title: "Alternative text styles", children: /* @__PURE__ */ jsx128(Icon, { icon: "more-alt", css: toolbarIcon }) }),
14650
+ menuTrigger: /* @__PURE__ */ jsx128("button", { css: richTextToolbarButton, title: "Alternative text styles", type: "button", children: /* @__PURE__ */ jsx128(Icon, { icon: "more-alt", css: toolbarIcon }) }),
14636
14651
  placement: "bottom-start",
14637
14652
  children: visibleFormatsWithoutIcon.map((format) => /* @__PURE__ */ jsx128(
14638
14653
  MenuItem,
@@ -14652,6 +14667,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
14652
14667
  "button",
14653
14668
  {
14654
14669
  "data-testid": "element-link",
14670
+ type: "button",
14655
14671
  onClick: () => {
14656
14672
  if (isLink) {
14657
14673
  editor.dispatchCommand(REMOVE_LINK_NODE_COMMAND, {});
@@ -14668,6 +14684,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
14668
14684
  "button",
14669
14685
  {
14670
14686
  "data-testid": "element-unordered-list",
14687
+ type: "button",
14671
14688
  onClick: () => {
14672
14689
  if (activeElement === "unorderedList") {
14673
14690
  editor.dispatchCommand(REMOVE_LIST_COMMAND, void 0);
@@ -14686,6 +14703,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
14686
14703
  "button",
14687
14704
  {
14688
14705
  "data-testid": "element-ordered-list",
14706
+ type: "button",
14689
14707
  onClick: () => {
14690
14708
  if (activeElement === "orderedList") {
14691
14709
  editor.dispatchCommand(REMOVE_LIST_COMMAND, void 0);
@@ -14706,7 +14724,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
14706
14724
  visibleInsertElementsWithIcons.size > 0 ? /* @__PURE__ */ jsx128("div", { css: toolbarGroup, "data-testid": "rich-text-toolbar-insert", children: /* @__PURE__ */ jsxs86(
14707
14725
  Menu,
14708
14726
  {
14709
- menuTrigger: /* @__PURE__ */ jsxs86("button", { css: richTextToolbarButton, title: "Insert block element", children: [
14727
+ menuTrigger: /* @__PURE__ */ jsxs86("button", { css: richTextToolbarButton, title: "Insert block element", type: "button", children: [
14710
14728
  "Insert",
14711
14729
  /* @__PURE__ */ jsx128(Icon, { icon: "chevron-down", css: [toolbarIcon, toolbarChevron], size: "1rem" })
14712
14730
  ] }),
package/dist/index.d.mts CHANGED
@@ -1164,13 +1164,12 @@ declare const allSupportedIcons: {
1164
1164
 
1165
1165
  /** A list of available icon names that can be used with the Uniform brand */
1166
1166
  type IconName = keyof typeof allSupportedIcons;
1167
-
1167
+ /** sets the type of icon to use from the available list */
1168
+ type IconType = IconName | IconType$1;
1168
1169
  /** sets fill color of the svg icon
1169
1170
  * @default 'default'
1170
1171
  */
1171
1172
  type IconColor = 'white' | 'action' | 'default' | 'red' | 'gray' | 'gray300' | 'accent' | 'currentColor' | 'accent-dark' | 'accent-light' | 'accent-alt-dark';
1172
- /** sets the type of icon to use from the available list */
1173
- type IconType = IconName | IconType$1;
1174
1173
  interface IconProps extends IconBaseProps {
1175
1174
  /** sets the icon to be used */
1176
1175
  icon: IconType;
@@ -1179,11 +1178,6 @@ interface IconProps extends IconBaseProps {
1179
1178
  /** sets additional icon props provided by "react-icons" */
1180
1179
  otherProps?: IconBaseProps;
1181
1180
  }
1182
- /**
1183
- * Component that renders icons
1184
- * @example <Icon icon="add-r" iconColor="currentColor" />
1185
- */
1186
- declare const Icon: React__default.MemoExoticComponent<({ icon, iconColor, size, ...otherProps }: IconProps) => _emotion_react_jsx_runtime.JSX.Element | null>;
1187
1181
 
1188
1182
  declare const rectangleRoundedIcon: (props: _react_icons_all_files.IconBaseProps) => React.JSX.Element;
1189
1183
  declare const cardIcon: (props: _react_icons_all_files.IconBaseProps) => React.JSX.Element;
@@ -1238,6 +1232,12 @@ declare const customIcons: {
1238
1232
  'zig-zag-thick': (props: _react_icons_all_files.IconBaseProps) => React.JSX.Element;
1239
1233
  };
1240
1234
 
1235
+ /**
1236
+ * Component that renders icons
1237
+ * @example <Icon icon="add-r" iconColor="currentColor" />
1238
+ */
1239
+ declare const Icon: React__default.MemoExoticComponent<({ icon, iconColor, size, ...otherProps }: IconProps) => _emotion_react_jsx_runtime.JSX.Element | null>;
1240
+
1241
1241
  type IconsMap = Record<string, IconType$1>;
1242
1242
  declare function useIconContext(): {
1243
1243
  iconsMap: IconsMap;
@@ -1634,6 +1634,8 @@ type DateTimePickerProps = {
1634
1634
  * @default 8
1635
1635
  */
1636
1636
  offset?: number;
1637
+ /** (optional) sets whether to render the popover in a portal */
1638
+ portal?: boolean;
1637
1639
  };
1638
1640
  /**
1639
1641
  * Use this context for slots within the date time picker
@@ -1653,7 +1655,7 @@ declare function useDateTimePickerContext(): {
1653
1655
  * Subcomponents can manipulate the value directly by using
1654
1656
  * the `useDateTimePickerContext()` hook.
1655
1657
  */
1656
- declare const DateTimePicker: ({ id, label, triggerIcon, value, minVisible, maxVisible, variant, caption, placeholder, belowTimeInputSlot, showLabel, errorMessage, warningMessage, disabled, onChange, offset, testId, placement, ...props }: DateTimePickerProps) => _emotion_react_jsx_runtime.JSX.Element;
1658
+ declare const DateTimePicker: ({ id, label, triggerIcon, value, minVisible, maxVisible, variant, caption, placeholder, belowTimeInputSlot, showLabel, errorMessage, warningMessage, disabled, onChange, offset, testId, placement, portal, ...props }: DateTimePickerProps) => _emotion_react_jsx_runtime.JSX.Element;
1657
1659
 
1658
1660
  declare function DateTimePickerSummary({ value, placeholder, }: {
1659
1661
  value: DateTimePickerValue | null | undefined;
package/dist/index.d.ts CHANGED
@@ -1164,13 +1164,12 @@ declare const allSupportedIcons: {
1164
1164
 
1165
1165
  /** A list of available icon names that can be used with the Uniform brand */
1166
1166
  type IconName = keyof typeof allSupportedIcons;
1167
-
1167
+ /** sets the type of icon to use from the available list */
1168
+ type IconType = IconName | IconType$1;
1168
1169
  /** sets fill color of the svg icon
1169
1170
  * @default 'default'
1170
1171
  */
1171
1172
  type IconColor = 'white' | 'action' | 'default' | 'red' | 'gray' | 'gray300' | 'accent' | 'currentColor' | 'accent-dark' | 'accent-light' | 'accent-alt-dark';
1172
- /** sets the type of icon to use from the available list */
1173
- type IconType = IconName | IconType$1;
1174
1173
  interface IconProps extends IconBaseProps {
1175
1174
  /** sets the icon to be used */
1176
1175
  icon: IconType;
@@ -1179,11 +1178,6 @@ interface IconProps extends IconBaseProps {
1179
1178
  /** sets additional icon props provided by "react-icons" */
1180
1179
  otherProps?: IconBaseProps;
1181
1180
  }
1182
- /**
1183
- * Component that renders icons
1184
- * @example <Icon icon="add-r" iconColor="currentColor" />
1185
- */
1186
- declare const Icon: React__default.MemoExoticComponent<({ icon, iconColor, size, ...otherProps }: IconProps) => _emotion_react_jsx_runtime.JSX.Element | null>;
1187
1181
 
1188
1182
  declare const rectangleRoundedIcon: (props: _react_icons_all_files.IconBaseProps) => React.JSX.Element;
1189
1183
  declare const cardIcon: (props: _react_icons_all_files.IconBaseProps) => React.JSX.Element;
@@ -1238,6 +1232,12 @@ declare const customIcons: {
1238
1232
  'zig-zag-thick': (props: _react_icons_all_files.IconBaseProps) => React.JSX.Element;
1239
1233
  };
1240
1234
 
1235
+ /**
1236
+ * Component that renders icons
1237
+ * @example <Icon icon="add-r" iconColor="currentColor" />
1238
+ */
1239
+ declare const Icon: React__default.MemoExoticComponent<({ icon, iconColor, size, ...otherProps }: IconProps) => _emotion_react_jsx_runtime.JSX.Element | null>;
1240
+
1241
1241
  type IconsMap = Record<string, IconType$1>;
1242
1242
  declare function useIconContext(): {
1243
1243
  iconsMap: IconsMap;
@@ -1634,6 +1634,8 @@ type DateTimePickerProps = {
1634
1634
  * @default 8
1635
1635
  */
1636
1636
  offset?: number;
1637
+ /** (optional) sets whether to render the popover in a portal */
1638
+ portal?: boolean;
1637
1639
  };
1638
1640
  /**
1639
1641
  * Use this context for slots within the date time picker
@@ -1653,7 +1655,7 @@ declare function useDateTimePickerContext(): {
1653
1655
  * Subcomponents can manipulate the value directly by using
1654
1656
  * the `useDateTimePickerContext()` hook.
1655
1657
  */
1656
- declare const DateTimePicker: ({ id, label, triggerIcon, value, minVisible, maxVisible, variant, caption, placeholder, belowTimeInputSlot, showLabel, errorMessage, warningMessage, disabled, onChange, offset, testId, placement, ...props }: DateTimePickerProps) => _emotion_react_jsx_runtime.JSX.Element;
1658
+ declare const DateTimePicker: ({ id, label, triggerIcon, value, minVisible, maxVisible, variant, caption, placeholder, belowTimeInputSlot, showLabel, errorMessage, warningMessage, disabled, onChange, offset, testId, placement, portal, ...props }: DateTimePickerProps) => _emotion_react_jsx_runtime.JSX.Element;
1657
1659
 
1658
1660
  declare function DateTimePickerSummary({ value, placeholder, }: {
1659
1661
  value: DateTimePickerValue | null | undefined;
package/dist/index.js CHANGED
@@ -5892,6 +5892,7 @@ var menuTriggerStyles = import_react35.css`
5892
5892
  background: transparent;
5893
5893
  padding: var(--spacing-xs);
5894
5894
  color: var(--gray-600);
5895
+ border-radius: var(--rounded-sm);
5895
5896
  transition: color var(--duration-fast) var(--timing-ease-out);
5896
5897
 
5897
5898
  &:focus,
@@ -5899,6 +5900,10 @@ var menuTriggerStyles = import_react35.css`
5899
5900
  outline: none;
5900
5901
  color: var(--typography-base);
5901
5902
  }
5903
+
5904
+ &:focus-visible {
5905
+ outline: 2px solid var(--accent-dark-active);
5906
+ }
5902
5907
  `;
5903
5908
 
5904
5909
  // src/components/Menu/Menu.tsx
@@ -8856,6 +8861,8 @@ var trigger = import_react72.css`
8856
8861
  margin: 2px 0;
8857
8862
  `;
8858
8863
  var popover = import_react72.css`
8864
+ border-radius: var(--rounded-sm);
8865
+ box-shadow: var(--elevation-100);
8859
8866
  padding: var(--spacing-md);
8860
8867
  max-width: unset;
8861
8868
  container-type: inline-size;
@@ -9050,6 +9057,7 @@ var DateTimePicker = ({
9050
9057
  offset = 8,
9051
9058
  testId = "datetime-picker",
9052
9059
  placement = "bottom-start",
9060
+ portal = false,
9053
9061
  ...props
9054
9062
  }) => {
9055
9063
  const popover2 = (0, import_react73.usePopoverStore)({ placement });
@@ -9158,6 +9166,7 @@ var DateTimePicker = ({
9158
9166
  unmountOnHide: true,
9159
9167
  "aria-label": "Pick a date",
9160
9168
  css: [Popover, popover],
9169
+ portal,
9161
9170
  children: [
9162
9171
  /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { css: popoverInnerContent, children: [
9163
9172
  /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { css: calendarSection, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
@@ -10053,6 +10062,11 @@ var iconButton = import_react88.css`
10053
10062
  justify-content: center;
10054
10063
  width: var(--button-size);
10055
10064
  height: var(--button-size);
10065
+
10066
+ &:disabled {
10067
+ filter: grayscale(100%);
10068
+ opacity: 0.5;
10069
+ }
10056
10070
  `;
10057
10071
  var sizes2 = {
10058
10072
  xs: import_react88.css`
@@ -16440,7 +16454,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
16440
16454
  /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
16441
16455
  Menu,
16442
16456
  {
16443
- menuTrigger: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("button", { css: [richTextToolbarButton, textStyleButton], title: "Text styles", children: [
16457
+ menuTrigger: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("button", { css: [richTextToolbarButton, textStyleButton], title: "Text styles", type: "button", children: [
16444
16458
  visibleTextualElements.some((element) => element.type === activeElement) ? getLabelForElement(activeElement) : getLabelForElement("paragraph"),
16445
16459
  " ",
16446
16460
  /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Icon, { icon: "chevron-down", css: [toolbarIcon, toolbarChevron], size: "1rem" })
@@ -16473,6 +16487,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
16473
16487
  "button",
16474
16488
  {
16475
16489
  "data-testid": `formatting-button-${format.type}`,
16490
+ type: "button",
16476
16491
  onClick: () => {
16477
16492
  editor.dispatchCommand(import_lexical9.FORMAT_TEXT_COMMAND, format.type);
16478
16493
  },
@@ -16486,7 +16501,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
16486
16501
  visibleFormatsWithoutIcon.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
16487
16502
  Menu,
16488
16503
  {
16489
- menuTrigger: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("button", { css: richTextToolbarButton, title: "Alternative text styles", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Icon, { icon: "more-alt", css: toolbarIcon }) }),
16504
+ menuTrigger: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("button", { css: richTextToolbarButton, title: "Alternative text styles", type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Icon, { icon: "more-alt", css: toolbarIcon }) }),
16490
16505
  placement: "bottom-start",
16491
16506
  children: visibleFormatsWithoutIcon.map((format) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
16492
16507
  MenuItem,
@@ -16506,6 +16521,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
16506
16521
  "button",
16507
16522
  {
16508
16523
  "data-testid": "element-link",
16524
+ type: "button",
16509
16525
  onClick: () => {
16510
16526
  if (isLink) {
16511
16527
  editor.dispatchCommand(REMOVE_LINK_NODE_COMMAND, {});
@@ -16522,6 +16538,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
16522
16538
  "button",
16523
16539
  {
16524
16540
  "data-testid": "element-unordered-list",
16541
+ type: "button",
16525
16542
  onClick: () => {
16526
16543
  if (activeElement === "unorderedList") {
16527
16544
  editor.dispatchCommand(import_list2.REMOVE_LIST_COMMAND, void 0);
@@ -16540,6 +16557,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
16540
16557
  "button",
16541
16558
  {
16542
16559
  "data-testid": "element-ordered-list",
16560
+ type: "button",
16543
16561
  onClick: () => {
16544
16562
  if (activeElement === "orderedList") {
16545
16563
  editor.dispatchCommand(import_list2.REMOVE_LIST_COMMAND, void 0);
@@ -16560,7 +16578,7 @@ var RichTextToolbar = ({ config, customControls, onInsertTable, onInsertAsset })
16560
16578
  visibleInsertElementsWithIcons.size > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("div", { css: toolbarGroup, "data-testid": "rich-text-toolbar-insert", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
16561
16579
  Menu,
16562
16580
  {
16563
- menuTrigger: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("button", { css: richTextToolbarButton, title: "Insert block element", children: [
16581
+ menuTrigger: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("button", { css: richTextToolbarButton, title: "Insert block element", type: "button", children: [
16564
16582
  "Insert",
16565
16583
  /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Icon, { icon: "chevron-down", css: [toolbarIcon, toolbarChevron], size: "1rem" })
16566
16584
  ] }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/design-system",
3
- "version": "20.24.1-alpha.0+9e8dbc01e8",
3
+ "version": "20.24.4-alpha.26+80d802be78",
4
4
  "description": "Uniform design system components",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "exports": {
@@ -38,8 +38,8 @@
38
38
  "@storybook/theming": "^8.3.3",
39
39
  "@types/react": "18.3.11",
40
40
  "@types/react-dom": "18.3.1",
41
- "@uniformdev/canvas": "^20.24.1-alpha.0+9e8dbc01e8",
42
- "@uniformdev/richtext": "^20.24.1-alpha.0+9e8dbc01e8",
41
+ "@uniformdev/canvas": "^20.24.4-alpha.26+80d802be78",
42
+ "@uniformdev/richtext": "^20.24.4-alpha.26+80d802be78",
43
43
  "@vitest/coverage-v8": "^3.1.2",
44
44
  "autoprefixer": "10.4.21",
45
45
  "hygen": "6.2.11",
@@ -91,5 +91,5 @@
91
91
  "publishConfig": {
92
92
  "access": "public"
93
93
  },
94
- "gitHead": "9e8dbc01e870c404b63c19326477dbb3910ec14a"
94
+ "gitHead": "80d802be787a855a99bfe70f2b6cbdb17e71cbae"
95
95
  }