fluentui-extended 2026.8.70 → 2026.8.71

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/index.d.mts CHANGED
@@ -287,6 +287,12 @@ interface CommandBarItem {
287
287
  checked?: boolean;
288
288
  /** Nested commands - rendered as a menu button, and as a submenu when overflowed */
289
289
  subItems?: CommandBarItem[];
290
+ /**
291
+ * Custom menu content rendered inside the MenuPopover. Use for complex menus
292
+ * that need MenuItemRadio, MenuItemCheckbox, MenuGroupHeader, etc.
293
+ * Takes precedence over subItems when both are provided.
294
+ */
295
+ menuContent?: React.ReactNode;
290
296
  /**
291
297
  * Keep this command out of the overflow menu. Use sparingly: a pinned command
292
298
  * that does not fit will be clipped rather than moved.
@@ -551,6 +557,8 @@ interface DateTimeFieldProps {
551
557
  * Dynamics default for new DateTime attributes.
552
558
  */
553
559
  behavior?: DateTimeBehavior;
560
+ /** Show the behavior hint text below the field. Defaults to false. */
561
+ showHint?: boolean;
554
562
  /**
555
563
  * Show a time picker alongside the date. Ignored when `behavior` is 'DateOnly',
556
564
  * which has no time component by definition.
package/dist/index.d.ts CHANGED
@@ -287,6 +287,12 @@ interface CommandBarItem {
287
287
  checked?: boolean;
288
288
  /** Nested commands - rendered as a menu button, and as a submenu when overflowed */
289
289
  subItems?: CommandBarItem[];
290
+ /**
291
+ * Custom menu content rendered inside the MenuPopover. Use for complex menus
292
+ * that need MenuItemRadio, MenuItemCheckbox, MenuGroupHeader, etc.
293
+ * Takes precedence over subItems when both are provided.
294
+ */
295
+ menuContent?: React.ReactNode;
290
296
  /**
291
297
  * Keep this command out of the overflow menu. Use sparingly: a pinned command
292
298
  * that does not fit will be clipped rather than moved.
@@ -551,6 +557,8 @@ interface DateTimeFieldProps {
551
557
  * Dynamics default for new DateTime attributes.
552
558
  */
553
559
  behavior?: DateTimeBehavior;
560
+ /** Show the behavior hint text below the field. Defaults to false. */
561
+ showHint?: boolean;
554
562
  /**
555
563
  * Show a time picker alongside the date. Ignored when `behavior` is 'DateOnly',
556
564
  * which has no time component by definition.
package/dist/index.js CHANGED
@@ -1834,7 +1834,7 @@ var CommandButton = ({ item, size, className }) => {
1834
1834
  const styles = useCommandBarStyles();
1835
1835
  const appearance = item.appearance ?? "subtle";
1836
1836
  const withTooltip = useTooltipWrapper(item, styles);
1837
- if (item.subItems?.length) {
1837
+ if (item.menuContent || item.subItems?.length) {
1838
1838
  return /* @__PURE__ */ React15__namespace.createElement(reactComponents.Menu, null, /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuTrigger, { disableButtonEnhancement: true }, withTooltip(
1839
1839
  /* @__PURE__ */ React15__namespace.createElement(
1840
1840
  reactComponents.MenuButton,
@@ -1847,7 +1847,7 @@ var CommandButton = ({ item, size, className }) => {
1847
1847
  },
1848
1848
  item.text
1849
1849
  )
1850
- )), /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuPopover, null, /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuList, null, item.subItems.map((subItem) => /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuItem, { key: subItem.key, icon: subItem.icon, disabled: subItem.disabled, onClick: subItem.onClick }, subItem.text)))));
1850
+ )), /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuPopover, null, item.menuContent ?? /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuList, null, item.subItems.map((subItem) => /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuItem, { key: subItem.key, icon: subItem.icon, disabled: subItem.disabled, onClick: subItem.onClick }, subItem.text)))));
1851
1851
  }
1852
1852
  if (item.checked !== void 0) {
1853
1853
  return withTooltip(
@@ -1884,8 +1884,8 @@ var CommandButton = ({ item, size, className }) => {
1884
1884
  var OverflowMenuItem = ({ item }) => {
1885
1885
  const styles = useCommandBarStyles();
1886
1886
  const withTooltip = useTooltipWrapper(item, styles);
1887
- if (item.subItems?.length) {
1888
- return /* @__PURE__ */ React15__namespace.createElement(reactComponents.Menu, null, /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuTrigger, { disableButtonEnhancement: true }, /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuItem, { icon: item.icon, disabled: item.disabled }, item.text || item.title)), /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuPopover, null, /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuList, null, item.subItems.map((subItem) => /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuItem, { key: subItem.key, icon: subItem.icon, disabled: subItem.disabled, onClick: subItem.onClick }, subItem.text)))));
1887
+ if (item.menuContent || item.subItems?.length) {
1888
+ return /* @__PURE__ */ React15__namespace.createElement(reactComponents.Menu, null, /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuTrigger, { disableButtonEnhancement: true }, /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuItem, { icon: item.icon, disabled: item.disabled }, item.text || item.title)), /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuPopover, null, item.menuContent ?? /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuList, null, item.subItems.map((subItem) => /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuItem, { key: subItem.key, icon: subItem.icon, disabled: subItem.disabled, onClick: subItem.onClick }, subItem.text)))));
1889
1889
  }
1890
1890
  const row = /* @__PURE__ */ React15__namespace.createElement(reactComponents.MenuItem, { icon: item.icon, disabled: item.disabled, onClick: item.onClick }, item.text || item.title);
1891
1891
  return shouldTooltipInOverflow(item) ? withTooltip(row) : row;
@@ -4647,6 +4647,7 @@ var DateTimeField = ({
4647
4647
  value,
4648
4648
  onChange,
4649
4649
  behavior: behaviorProp = "UserLocal",
4650
+ showHint = false,
4650
4651
  showTime = false,
4651
4652
  timeOnly = false,
4652
4653
  timeIntervalMinutes = 30,
@@ -4990,7 +4991,7 @@ var DateTimeField = ({
4990
4991
  timeFormat === "12h" ? formatTime12h(time) : time
4991
4992
  ))))),
4992
4993
  /* @__PURE__ */ React15__namespace.createElement("div", { className: styles.popupFooter }, /* @__PURE__ */ React15__namespace.createElement("div", { className: styles.footerLeft }, !timeOnly && /* @__PURE__ */ React15__namespace.createElement(reactComponents.Button, { appearance: "subtle", size: "small", onClick: handleToday }, "Today"), timeEnabled && /* @__PURE__ */ React15__namespace.createElement(reactComponents.Button, { appearance: "subtle", size: "small", onClick: handleTimeNow }, timeOnly ? "Now" : "Time Now")), /* @__PURE__ */ React15__namespace.createElement("div", { className: styles.footerRight }, /* @__PURE__ */ React15__namespace.createElement(reactComponents.Button, { appearance: "primary", size: "small", onClick: handleDone }, "Done")))
4993
- )), behavior !== "UserLocal" && /* @__PURE__ */ React15__namespace.createElement(reactComponents.Text, { className: styles.behaviorHint }, behavior === "DateOnly" ? "Date only - stored without a time or timezone" : "Timezone independent - stored exactly as entered"), loadError && /* @__PURE__ */ React15__namespace.createElement(reactComponents.Text, { className: styles.errorText }, loadError));
4994
+ )), showHint && behavior !== "UserLocal" && /* @__PURE__ */ React15__namespace.createElement(reactComponents.Text, { className: styles.behaviorHint }, behavior === "DateOnly" ? "Date only - stored without a time or timezone" : "Timezone independent - stored exactly as entered"), loadError && /* @__PURE__ */ React15__namespace.createElement(reactComponents.Text, { className: styles.errorText }, loadError));
4994
4995
  if (!label && !validationMessage) {
4995
4996
  return /* @__PURE__ */ React15__namespace.createElement("div", { className: reactComponents.mergeClasses(styles.root, className) }, control);
4996
4997
  }