@jsenv/navi 0.12.12 → 0.12.14

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.
@@ -10074,6 +10074,44 @@ const renderActionableComponent = (props, {
10074
10074
  });
10075
10075
  };
10076
10076
 
10077
+ /**
10078
+ * Merges a component's base className with className received from props.
10079
+ *
10080
+ * ```jsx
10081
+ * const MyButton = ({ className, children }) => (
10082
+ * <button className={withPropsClassName("btn", className)}>
10083
+ * {children}
10084
+ * </button>
10085
+ * );
10086
+ *
10087
+ * // Usage:
10088
+ * <MyButton className="primary large" /> // Results in "btn primary large"
10089
+ * <MyButton /> // Results in "btn"
10090
+ * ```
10091
+ *
10092
+ * @param {string} baseClassName - The component's base CSS class name
10093
+ * @param {string} [classNameFromProps] - Additional className from props (optional)
10094
+ * @returns {string} The merged className string
10095
+ */
10096
+ const withPropsClassName = (baseClassName, classNameFromProps) => {
10097
+ if (!classNameFromProps) {
10098
+ return baseClassName;
10099
+ }
10100
+
10101
+ // Trim and normalize whitespace from the props className
10102
+ const trimmedPropsClassName = classNameFromProps.trim();
10103
+ if (!trimmedPropsClassName) {
10104
+ return baseClassName;
10105
+ }
10106
+
10107
+ // Normalize multiple spaces to single spaces and combine
10108
+ const normalizedPropsClassName = trimmedPropsClassName.replace(/\s+/g, " ");
10109
+ if (!baseClassName) {
10110
+ return normalizedPropsClassName;
10111
+ }
10112
+ return `${baseClassName} ${normalizedPropsClassName}`;
10113
+ };
10114
+
10077
10115
  /**
10078
10116
  * Processes component props to extract and generate styles for layout, spacing, alignment, expansion, and typography.
10079
10117
  * Returns remaining props and styled objects based on configuration.
@@ -10429,13 +10467,7 @@ const CONTENT_PROPS = {
10429
10467
  }
10430
10468
  return { justifyContent: value };
10431
10469
  }
10432
- if (layout === "inline-block" || layout === "table-cell") {
10433
- if (value === "start") {
10434
- return undefined; // this is the default
10435
- }
10436
- return { textAlign: value };
10437
- }
10438
- return undefined;
10470
+ return { textAlign: value };
10439
10471
  },
10440
10472
  contentAlignY: (value, { layout }) => {
10441
10473
  if (layout === "row" || layout === "inline-row") {
@@ -10452,13 +10484,7 @@ const CONTENT_PROPS = {
10452
10484
  }
10453
10485
  return { alignItems: value };
10454
10486
  }
10455
- if (layout === "inline-block" || layout === "table-cell") {
10456
- if (value === "start") {
10457
- return undefined;
10458
- }
10459
- return { verticalAlign: value };
10460
- }
10461
- return undefined;
10487
+ return { verticalAlign: value };
10462
10488
  },
10463
10489
  contentSpacing: (value, { layout }) => {
10464
10490
  if (
@@ -11138,44 +11164,6 @@ const updateStyle = (element, style) => {
11138
11164
  return;
11139
11165
  };
11140
11166
 
11141
- /**
11142
- * Merges a component's base className with className received from props.
11143
- *
11144
- * ```jsx
11145
- * const MyButton = ({ className, children }) => (
11146
- * <button className={withPropsClassName("btn", className)}>
11147
- * {children}
11148
- * </button>
11149
- * );
11150
- *
11151
- * // Usage:
11152
- * <MyButton className="primary large" /> // Results in "btn primary large"
11153
- * <MyButton /> // Results in "btn"
11154
- * ```
11155
- *
11156
- * @param {string} baseClassName - The component's base CSS class name
11157
- * @param {string} [classNameFromProps] - Additional className from props (optional)
11158
- * @returns {string} The merged className string
11159
- */
11160
- const withPropsClassName = (baseClassName, classNameFromProps) => {
11161
- if (!classNameFromProps) {
11162
- return baseClassName;
11163
- }
11164
-
11165
- // Trim and normalize whitespace from the props className
11166
- const trimmedPropsClassName = classNameFromProps.trim();
11167
- if (!trimmedPropsClassName) {
11168
- return baseClassName;
11169
- }
11170
-
11171
- // Normalize multiple spaces to single spaces and combine
11172
- const normalizedPropsClassName = trimmedPropsClassName.replace(/\s+/g, " ");
11173
- if (!baseClassName) {
11174
- return normalizedPropsClassName;
11175
- }
11176
- return `${baseClassName} ${normalizedPropsClassName}`;
11177
- };
11178
-
11179
11167
  installImportMetaCss(import.meta);import.meta.css = /* css */`
11180
11168
  [data-layout-inline] {
11181
11169
  display: inline;
@@ -13485,12 +13473,121 @@ const useAutoFocus = (
13485
13473
  }, []);
13486
13474
  };
13487
13475
 
13476
+ const useInitialTextSelection = (ref, textSelection) => {
13477
+ const deps = [];
13478
+ if (Array.isArray(textSelection)) {
13479
+ deps.push(...textSelection);
13480
+ } else {
13481
+ deps.push(textSelection);
13482
+ }
13483
+ useLayoutEffect(() => {
13484
+ const el = ref.current;
13485
+ if (!el || !textSelection) {
13486
+ return;
13487
+ }
13488
+ const range = document.createRange();
13489
+ const selection = window.getSelection();
13490
+ if (Array.isArray(textSelection)) {
13491
+ if (textSelection.length === 2) {
13492
+ const [start, end] = textSelection;
13493
+ if (typeof start === "number" && typeof end === "number") {
13494
+ // Format: [0, 10] - character indices
13495
+ selectByCharacterIndices(el, range, start, end);
13496
+ } else if (typeof start === "string" && typeof end === "string") {
13497
+ // Format: ["Click on the", "button to return"] - text strings
13498
+ selectByTextStrings(el, range, start, end);
13499
+ }
13500
+ }
13501
+ } else if (typeof textSelection === "string") {
13502
+ // Format: "some text" - select the entire string occurrence
13503
+ selectSingleTextString(el, range, textSelection);
13504
+ }
13505
+ selection.removeAllRanges();
13506
+ selection.addRange(range);
13507
+ }, deps);
13508
+ };
13509
+ const selectByCharacterIndices = (element, range, startIndex, endIndex) => {
13510
+ const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false);
13511
+ let currentIndex = 0;
13512
+ let startNode = null;
13513
+ let startOffset = 0;
13514
+ let endNode = null;
13515
+ let endOffset = 0;
13516
+ while (walker.nextNode()) {
13517
+ const textContent = walker.currentNode.textContent;
13518
+ const nodeLength = textContent.length;
13519
+
13520
+ // Check if start position is in this text node
13521
+ if (!startNode && currentIndex + nodeLength > startIndex) {
13522
+ startNode = walker.currentNode;
13523
+ startOffset = startIndex - currentIndex;
13524
+ }
13525
+
13526
+ // Check if end position is in this text node
13527
+ if (currentIndex + nodeLength >= endIndex) {
13528
+ endNode = walker.currentNode;
13529
+ endOffset = endIndex - currentIndex;
13530
+ break;
13531
+ }
13532
+ currentIndex += nodeLength;
13533
+ }
13534
+ if (startNode && endNode) {
13535
+ range.setStart(startNode, startOffset);
13536
+ range.setEnd(endNode, endOffset);
13537
+ }
13538
+ };
13539
+ const selectSingleTextString = (element, range, text) => {
13540
+ const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false);
13541
+ while (walker.nextNode()) {
13542
+ const textContent = walker.currentNode.textContent;
13543
+ const index = textContent.indexOf(text);
13544
+ if (index !== -1) {
13545
+ range.setStart(walker.currentNode, index);
13546
+ range.setEnd(walker.currentNode, index + text.length);
13547
+ return;
13548
+ }
13549
+ }
13550
+ };
13551
+ const selectByTextStrings = (element, range, startText, endText) => {
13552
+ const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false);
13553
+ let startNode = null;
13554
+ let endNode = null;
13555
+ let foundStart = false;
13556
+ while (walker.nextNode()) {
13557
+ const textContent = walker.currentNode.textContent;
13558
+ if (!foundStart && textContent.includes(startText)) {
13559
+ startNode = walker.currentNode;
13560
+ foundStart = true;
13561
+ }
13562
+ if (foundStart && textContent.includes(endText)) {
13563
+ endNode = walker.currentNode;
13564
+ break;
13565
+ }
13566
+ }
13567
+ if (startNode && endNode) {
13568
+ const startOffset = startNode.textContent.indexOf(startText);
13569
+ const endOffset = endNode.textContent.indexOf(endText) + endText.length;
13570
+ range.setStart(startNode, startOffset);
13571
+ range.setEnd(endNode, endOffset);
13572
+ }
13573
+ };
13574
+
13488
13575
  installImportMetaCss(import.meta);import.meta.css = /* css */`
13576
+ *[data-navi-space] {
13577
+ /* user-select: none; */
13578
+ }
13579
+
13489
13580
  .navi_text {
13490
13581
  position: relative;
13491
13582
  color: inherit;
13492
13583
  }
13493
13584
 
13585
+ .navi_text_overflow {
13586
+ flex-wrap: wrap;
13587
+ text-overflow: ellipsis;
13588
+ overflow: hidden;
13589
+ }
13590
+
13494
13591
  .navi_text_overflow_wrapper {
13495
13592
  display: flex;
13496
13593
  width: 0;
@@ -13504,6 +13601,59 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
13504
13601
  overflow: hidden;
13505
13602
  }
13506
13603
  `;
13604
+ const INSERTED_SPACE = jsx("span", {
13605
+ "data-navi-space": "",
13606
+ children: " "
13607
+ });
13608
+ const applyContentSpacingOnTextChildren = (children, contentSpacing) => {
13609
+ if (contentSpacing === "pre") {
13610
+ return children;
13611
+ }
13612
+ if (!children) {
13613
+ return children;
13614
+ }
13615
+ const childArray = toChildArray(children);
13616
+ const childCount = childArray.length;
13617
+ if (childCount <= 1) {
13618
+ return children;
13619
+ }
13620
+
13621
+ // Helper function to check if a value ends with whitespace
13622
+ const endsWithWhitespace = value => {
13623
+ if (typeof value === "string") {
13624
+ return /\s$/.test(value);
13625
+ }
13626
+ return false;
13627
+ };
13628
+
13629
+ // Helper function to check if a value starts with whitespace
13630
+ const startsWithWhitespace = value => {
13631
+ if (typeof value === "string") {
13632
+ return /^\s/.test(value);
13633
+ }
13634
+ return false;
13635
+ };
13636
+ const separator = contentSpacing === undefined || contentSpacing === " " ? INSERTED_SPACE : contentSpacing;
13637
+ const childrenWithGap = [];
13638
+ let i = 0;
13639
+ while (true) {
13640
+ const child = childArray[i];
13641
+ childrenWithGap.push(child);
13642
+ i++;
13643
+ if (i === childCount) {
13644
+ break;
13645
+ }
13646
+
13647
+ // Check if we should skip adding contentSpacing
13648
+ const currentChild = childArray[i - 1];
13649
+ const nextChild = childArray[i];
13650
+ const shouldSkipSpacing = endsWithWhitespace(currentChild) || startsWithWhitespace(nextChild);
13651
+ if (!shouldSkipSpacing) {
13652
+ childrenWithGap.push(separator);
13653
+ }
13654
+ }
13655
+ return childrenWithGap;
13656
+ };
13507
13657
  const OverflowPinnedElementContext = createContext(null);
13508
13658
  const Text = props => {
13509
13659
  const {
@@ -13525,8 +13675,6 @@ const Text = props => {
13525
13675
  });
13526
13676
  };
13527
13677
  const TextOverflow = ({
13528
- as = "div",
13529
- contentSpacing = " ",
13530
13678
  noWrap,
13531
13679
  pre = !noWrap,
13532
13680
  children,
@@ -13534,21 +13682,20 @@ const TextOverflow = ({
13534
13682
  }) => {
13535
13683
  const [OverflowPinnedElement, setOverflowPinnedElement] = useState(null);
13536
13684
  return jsx(Text, {
13537
- ...rest,
13538
- as: as,
13539
- box: true,
13540
- expandX: true,
13685
+ as: "div",
13541
13686
  pre: pre,
13542
13687
  nowWrap: noWrap,
13688
+ ...rest,
13689
+ className: "navi_text_overflow",
13690
+ expandX: true,
13543
13691
  contentSpacing: "pre",
13544
- style: "text-overflow: ellipsis; overflow: hidden; flex-wrap: wrap;",
13545
13692
  children: jsxs("span", {
13546
13693
  className: "navi_text_overflow_wrapper",
13547
- children: [jsx("span", {
13548
- className: "navi_text_overflow_text",
13549
- children: jsx(OverflowPinnedElementContext.Provider, {
13550
- value: setOverflowPinnedElement,
13551
- children: applyContentSpacingOnTextChildren(children, contentSpacing)
13694
+ children: [jsx(OverflowPinnedElementContext.Provider, {
13695
+ value: setOverflowPinnedElement,
13696
+ children: jsx(Text, {
13697
+ className: "navi_text_overflow_text",
13698
+ children: children
13552
13699
  })
13553
13700
  }), OverflowPinnedElement]
13554
13701
  })
@@ -13574,80 +13721,22 @@ const TextOverflowPinned = ({
13574
13721
  return text;
13575
13722
  };
13576
13723
  const TextBasic = ({
13577
- as = "span",
13578
- contentSpacing = " ",
13579
- children,
13580
- ...rest
13581
- }) => {
13582
- const text = jsx(Box, {
13583
- ...rest,
13584
- baseClassName: "navi_text",
13585
- as: as,
13586
- children: applyContentSpacingOnTextChildren(children, contentSpacing)
13587
- });
13588
- return text;
13589
- };
13590
- const Paragraph = ({
13591
13724
  contentSpacing = " ",
13592
- marginTop = "md",
13725
+ selectRange,
13593
13726
  children,
13594
13727
  ...rest
13595
13728
  }) => {
13729
+ const defaultRef = useRef();
13730
+ const ref = rest.ref || defaultRef;
13731
+ useInitialTextSelection(ref, selectRange);
13596
13732
  return jsx(Box, {
13733
+ ref: ref,
13734
+ as: "span",
13597
13735
  ...rest,
13598
- as: "p",
13599
- marginTop: marginTop,
13736
+ baseClassName: "navi_text",
13600
13737
  children: applyContentSpacingOnTextChildren(children, contentSpacing)
13601
13738
  });
13602
13739
  };
13603
- const applyContentSpacingOnTextChildren = (children, contentSpacing) => {
13604
- if (contentSpacing === "pre") {
13605
- return children;
13606
- }
13607
- if (!children) {
13608
- return children;
13609
- }
13610
- const childArray = toChildArray(children);
13611
- const childCount = childArray.length;
13612
- if (childCount <= 1) {
13613
- return children;
13614
- }
13615
-
13616
- // Helper function to check if a value ends with whitespace
13617
- const endsWithWhitespace = value => {
13618
- if (typeof value === "string") {
13619
- return /\s$/.test(value);
13620
- }
13621
- return false;
13622
- };
13623
-
13624
- // Helper function to check if a value starts with whitespace
13625
- const startsWithWhitespace = value => {
13626
- if (typeof value === "string") {
13627
- return /^\s/.test(value);
13628
- }
13629
- return false;
13630
- };
13631
- const childrenWithGap = [];
13632
- let i = 0;
13633
- while (true) {
13634
- const child = childArray[i];
13635
- childrenWithGap.push(child);
13636
- i++;
13637
- if (i === childCount) {
13638
- break;
13639
- }
13640
-
13641
- // Check if we should skip adding contentSpacing
13642
- const currentChild = childArray[i - 1];
13643
- const nextChild = childArray[i];
13644
- const shouldSkipSpacing = endsWithWhitespace(currentChild) || startsWithWhitespace(nextChild);
13645
- if (!shouldSkipSpacing) {
13646
- childrenWithGap.push(contentSpacing);
13647
- }
13648
- }
13649
- return childrenWithGap;
13650
- };
13651
13740
 
13652
13741
  installImportMetaCss(import.meta);import.meta.css = /* css */`
13653
13742
  .navi_icon {
@@ -13657,6 +13746,8 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
13657
13746
 
13658
13747
  .navi_icon_char_slot {
13659
13748
  opacity: 0;
13749
+ cursor: default;
13750
+ user-select: none;
13660
13751
  }
13661
13752
  .navi_icon_foreground {
13662
13753
  position: absolute;
@@ -13741,6 +13832,7 @@ const Icon = ({
13741
13832
  ...ariaProps,
13742
13833
  box: box,
13743
13834
  className: withPropsClassName("navi_icon", className),
13835
+ contentSpacing: "pre",
13744
13836
  "data-icon-char": "",
13745
13837
  "data-width": width,
13746
13838
  "data-height": height,
@@ -13751,6 +13843,7 @@ const Icon = ({
13751
13843
  }), jsx("span", {
13752
13844
  className: "navi_icon_foreground",
13753
13845
  children: jsx(Text, {
13846
+ contentSpacing: "pre",
13754
13847
  children: innerChildren
13755
13848
  })
13756
13849
  })]
@@ -13760,37 +13853,37 @@ const Icon = ({
13760
13853
  installImportMetaCss(import.meta);import.meta.css = /* css */`
13761
13854
  @layer navi {
13762
13855
  .navi_link {
13763
- --border-radius: 2px;
13764
- --outline-color: var(--navi-focus-outline-color);
13765
- --color: rgb(0, 0, 238);
13766
- --color-visited: light-dark(#6a1b9a, #ab47bc);
13767
- --color-active: red;
13768
- --text-decoration: underline;
13769
- --text-decoration-hover: var(--text-decoration);
13770
- --cursor: pointer;
13856
+ --link-border-radius: 2px;
13857
+ --link-outline-color: var(--navi-focus-outline-color);
13858
+ --link-color: rgb(0, 0, 238);
13859
+ --link-color-visited: light-dark(#6a1b9a, #ab47bc);
13860
+ --link-color-active: red;
13861
+ --link-text-decoration: underline;
13862
+ --link-text-decoration-hover: var(--link-text-decoration);
13863
+ --link-cursor: pointer;
13771
13864
  }
13772
13865
  }
13773
13866
 
13774
13867
  .navi_link {
13775
- --x-color: var(--color);
13776
- --x-color-hover: var(--color-hover, var(--color));
13777
- --x-color-visited: var(--color-visited);
13778
- --x-color-active: var(--color-active);
13779
- --x-text-decoration: var(--text-decoration);
13780
- --x-text-decoration-hover: var(--text-decoration-hover);
13781
- --x-cursor: var(--cursor);
13868
+ --x-link-color: var(--link-color);
13869
+ --x-link-color-hover: var(--link-color-hover, var(--link-color));
13870
+ --x-link-color-visited: var(--link-color-visited);
13871
+ --x-link-color-active: var(--link-color-active);
13872
+ --x-link-text-decoration: var(--link-text-decoration);
13873
+ --x-link-text-decoration-hover: var(--link-text-decoration-hover);
13874
+ --x-link-cursor: var(--link-cursor);
13782
13875
 
13783
13876
  position: relative;
13784
- color: var(--x-color);
13785
- text-decoration: var(--x-text-decoration);
13786
- border-radius: var(--border-radius);
13787
- outline-color: var(--outline-color);
13788
- cursor: var(--x-cursor);
13877
+ color: var(--x-link-color);
13878
+ text-decoration: var(--x-link-text-decoration);
13879
+ border-radius: var(--link-border-radius);
13880
+ outline-color: var(--link-outline-color);
13881
+ cursor: var(--x-link-cursor);
13789
13882
  }
13790
13883
  /* Hover */
13791
13884
  .navi_link[data-hover] {
13792
- --x-color: var(--x-color-hover);
13793
- --x-text-decoration: var(--x-text-decoration-hover);
13885
+ --x-link-color: var(--x-link-color-hover);
13886
+ --x-link-text-decoration: var(--x-link-text-decoration-hover);
13794
13887
  }
13795
13888
  /* Focus */
13796
13889
  .navi_link[data-focus] {
@@ -13803,7 +13896,7 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
13803
13896
  }
13804
13897
  /* Visited */
13805
13898
  .navi_link[data-visited] {
13806
- --x-color: var(--x-color-visited);
13899
+ --x-link-color: var(--x-link-color-visited);
13807
13900
  }
13808
13901
  /* Selected */
13809
13902
  .navi_link[aria-selected] {
@@ -13819,7 +13912,7 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
13819
13912
  /* Active */
13820
13913
  .navi_link[data-active] {
13821
13914
  /* Redefine it otherwise [data-visited] prevails */
13822
- --x-color: var(--x-color-active);
13915
+ --x-link-color: var(--x-link-color-active);
13823
13916
  }
13824
13917
  /* Readonly */
13825
13918
  .navi_link[data-readonly] > * {
@@ -13834,17 +13927,17 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
13834
13927
  }
13835
13928
  `;
13836
13929
  const LinkManagedByCSSVars = {
13837
- "outlineColor": "--outline-color",
13838
- "borderRadius": "--border-radius",
13839
- "color": "--color",
13840
- "cursor": "--cursor",
13841
- "textDecoration": "--text-decoration",
13930
+ "outlineColor": "--link-outline-color",
13931
+ "borderRadius": "--link-border-radius",
13932
+ "color": "--link-color",
13933
+ "cursor": "--link-cursor",
13934
+ "textDecoration": "--link-text-decoration",
13842
13935
  ":hover": {
13843
- color: "--color-hover",
13844
- textDecoration: "--text-decoration-hover"
13936
+ color: "--link-color-hover",
13937
+ textDecoration: "--link-text-decoration-hover"
13845
13938
  },
13846
13939
  ":active": {
13847
- color: "--color-active"
13940
+ color: "--link-color-active"
13848
13941
  }
13849
13942
  };
13850
13943
  const LinkPseudoClasses = [":hover", ":active", ":focus", ":focus-visible", ":read-only", ":disabled", ":visited", ":-navi-loading", ":-navi-internal-link", ":-navi-external-link", ":-navi-anchor-link", ":-navi-current-link"];
@@ -13898,7 +13991,7 @@ const LinkPlain = props => {
13898
13991
  blankTargetIcon,
13899
13992
  anchorIcon,
13900
13993
  icon,
13901
- contentSpacing = " ",
13994
+ contentSpacing,
13902
13995
  children,
13903
13996
  ...rest
13904
13997
  } = props;
@@ -13950,7 +14043,8 @@ const LinkPlain = props => {
13950
14043
  rel: innerRel,
13951
14044
  target: innerTarget === "_self" ? undefined : target,
13952
14045
  "aria-busy": loading,
13953
- inert: disabled
14046
+ inert: disabled,
14047
+ contentSpacing: "pre"
13954
14048
  // Visual
13955
14049
  ,
13956
14050
  baseClassName: "navi_link",
@@ -16213,8 +16307,7 @@ const InputTextualBasic = props => {
16213
16307
  const renderInputMemoized = useCallback(renderInput, [type, uiState, innerValue, innerOnInput]);
16214
16308
  return jsxs(Box, {
16215
16309
  as: "span",
16216
- layoutInline: true,
16217
- layoutColumn: true,
16310
+ box: true,
16218
16311
  baseClassName: "navi_input",
16219
16312
  managedByCSSVars: InputManagedByCSSVars,
16220
16313
  pseudoStateSelector: ".navi_native_input",
@@ -16587,52 +16680,68 @@ const useFormEvents = (
16587
16680
  installImportMetaCss(import.meta);import.meta.css = /* css */`
16588
16681
  @layer navi {
16589
16682
  .navi_button {
16590
- --outline-width: 1px;
16591
- --border-width: 1px;
16592
- --border-radius: 2px;
16683
+ --button-outline-width: 1px;
16684
+ --button-border-width: 1px;
16685
+ --button-border-radius: 2px;
16593
16686
  /* default */
16594
- --outline-color: var(--navi-focus-outline-color);
16595
- --loader-color: var(--navi-loader-color);
16596
- --border-color: light-dark(#767676, #8e8e93);
16597
- --background-color: light-dark(#f3f4f6, #2d3748);
16598
- --color: currentColor;
16687
+ --button-outline-color: var(--navi-focus-outline-color);
16688
+ --button-loader-color: var(--navi-loader-color);
16689
+ --button-border-color: light-dark(#767676, #8e8e93);
16690
+ --button-background-color: light-dark(#f3f4f6, #2d3748);
16691
+ --button-color: currentColor;
16599
16692
 
16600
16693
  /* Hover */
16601
- --border-color-hover: color-mix(in srgb, var(--border-color) 70%, black);
16602
- --background-color-hover: color-mix(
16694
+ --button-border-color-hover: color-mix(
16603
16695
  in srgb,
16604
- var(--background-color) 95%,
16696
+ var(--button-border-color) 70%,
16605
16697
  black
16606
16698
  );
16607
- --color-hover: var(--color);
16699
+ --button-background-color-hover: color-mix(
16700
+ in srgb,
16701
+ var(--button-background-color) 95%,
16702
+ black
16703
+ );
16704
+ --button-color-hover: var(--button-color);
16608
16705
  /* Active */
16609
- --border-color-active: color-mix(in srgb, var(--border-color) 90%, black);
16706
+ --button-border-color-active: color-mix(
16707
+ in srgb,
16708
+ var(--button-border-color) 90%,
16709
+ black
16710
+ );
16610
16711
  /* Readonly */
16611
- --border-color-readonly: color-mix(
16712
+ --button-border-color-readonly: color-mix(
16612
16713
  in srgb,
16613
- var(--border-color) 30%,
16714
+ var(--button-border-color) 30%,
16614
16715
  white
16615
16716
  );
16616
- --background-color-readonly: var(--background-color);
16617
- --color-readonly: color-mix(in srgb, var(--color) 30%, transparent);
16717
+ --button-background-color-readonly: var(--button-background-color);
16718
+ --button-color-readonly: color-mix(
16719
+ in srgb,
16720
+ var(--button-color) 30%,
16721
+ transparent
16722
+ );
16618
16723
  /* Disabled */
16619
- --border-color-disabled: var(--border-color-readonly);
16620
- --background-color-disabled: var(--background-color-readonly);
16621
- --color-disabled: var(--color-readonly);
16724
+ --button-border-color-disabled: var(--button-border-color-readonly);
16725
+ --button-background-color-disabled: var(
16726
+ --button-background-color-readonly
16727
+ );
16728
+ --button-color-disabled: var(--button-color-readonly);
16622
16729
  }
16623
16730
  }
16624
16731
 
16625
16732
  .navi_button {
16626
16733
  /* Internal css vars are the one controlling final values */
16627
16734
  /* allowing to override them on interactions (like hover, disabled, etc.) */
16628
- --x-outline-width: var(--outline-width);
16629
- --x-border-radius: var(--border-radius);
16630
- --x-border-width: var(--border-width);
16631
- --x-outer-width: calc(var(--x-border-width) + var(--x-outline-width));
16632
- --x-outline-color: var(--outline-color);
16633
- --x-border-color: var(--border-color);
16634
- --x-background-color: var(--background-color);
16635
- --x-color: var(--color);
16735
+ --x-button-outline-width: var(--button-outline-width);
16736
+ --x-button-border-radius: var(--button-border-radius);
16737
+ --x-button-border-width: var(--button-border-width);
16738
+ --x-button-outer-width: calc(
16739
+ var(--button-x-border-width) + var(--x-button-outline-width)
16740
+ );
16741
+ --x-button-outline-color: var(--button-outline-color);
16742
+ --x-button-border-color: var(--button-border-color);
16743
+ --x-button-background-color: var(--button-background-color);
16744
+ --x-button-color: var(--button-color);
16636
16745
 
16637
16746
  position: relative;
16638
16747
  display: inline-flex;
@@ -16640,50 +16749,64 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
16640
16749
  padding: 0;
16641
16750
  background: none;
16642
16751
  border: none;
16643
- border-radius: var(--x-border-radius);
16752
+ border-radius: var(--x-button-border-radius);
16644
16753
  outline: none;
16645
16754
  cursor: pointer;
16646
16755
  }
16647
16756
  .navi_button_content {
16648
16757
  position: relative;
16758
+ display: inherit;
16649
16759
  box-sizing: border-box;
16650
- padding-top: var(--padding-top, var(--padding-y, var(--padding, 1px)));
16651
- padding-right: var(--padding-right, var(--padding-x, var(--padding, 6px)));
16760
+ width: 100%;
16761
+ height: 100%;
16762
+ padding-top: var(
16763
+ --button-padding-top,
16764
+ var(--button-padding-y, var(--button-padding, 1px))
16765
+ );
16766
+ padding-right: var(
16767
+ --button-padding-right,
16768
+ var(--button-padding-x, var(--button-padding, 6px))
16769
+ );
16652
16770
  padding-bottom: var(
16653
- --padding-bottom,
16654
- var(--padding-y, var(--padding, 1px))
16771
+ --button-padding-bottom,
16772
+ var(--button-padding-y, var(--button-padding, 1px))
16655
16773
  );
16656
- padding-left: var(--padding-left, var(--padding-x, var(--padding, 6px)));
16657
- color: var(--x-color);
16658
- background-color: var(--x-background-color);
16659
- border-width: var(--x-outer-width);
16774
+ padding-left: var(
16775
+ --button-padding-left,
16776
+ var(--button-padding-x, var(--button-padding, 6px))
16777
+ );
16778
+ align-items: inherit;
16779
+ justify-content: inherit;
16780
+ color: var(--x-button-color);
16781
+ background-color: var(--x-button-background-color);
16782
+ border-width: var(--x-button-outer-width);
16660
16783
  border-style: solid;
16661
16784
  border-color: transparent;
16662
- border-radius: var(--x-border-radius);
16663
- outline-width: var(--x-border-width);
16785
+ border-radius: var(--x-button-border-radius);
16786
+ outline-width: var(--x-button-border-width);
16664
16787
  outline-style: solid;
16665
- outline-color: var(--x-border-color);
16666
- outline-offset: calc(-1 * (var(--x-border-width)));
16788
+ outline-color: var(--x-button-border-color);
16789
+ outline-offset: calc(-1 * (var(--x-button-border-width)));
16667
16790
  transition-property: transform;
16668
16791
  transition-duration: 0.15s;
16669
16792
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
16670
16793
  }
16671
16794
  .navi_button_shadow {
16672
16795
  position: absolute;
16673
- inset: calc(-1 * var(--x-outer-width));
16796
+ inset: calc(-1 * var(--x-button-outer-width));
16674
16797
  border-radius: inherit;
16675
16798
  pointer-events: none;
16676
16799
  }
16677
16800
 
16678
16801
  /* Hover */
16679
16802
  .navi_button[data-hover] {
16680
- --x-border-color: var(--border-color-hover);
16681
- --x-background-color: var(--background-color-hover);
16682
- --x-color: var(--color-hover);
16803
+ --x-button-border-color: var(--button-border-color-hover);
16804
+ --x-button-background-color: var(--button-background-color-hover);
16805
+ --x-button-color: var(--button-color-hover);
16683
16806
  }
16684
16807
  /* Active */
16685
16808
  .navi_button[data-active] {
16686
- --x-outline-color: var(--border-color-active);
16809
+ --x-button-outline-color: var(--button-border-color-active);
16687
16810
  }
16688
16811
  .navi_button[data-active] .navi_button_content {
16689
16812
  transform: scale(0.9);
@@ -16698,17 +16821,17 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
16698
16821
  }
16699
16822
  /* Readonly */
16700
16823
  .navi_button[data-readonly] {
16701
- --x-border-color: var(--border-color-readonly);
16702
- --x-background-color: var(--background-color-readonly);
16703
- --x-color: var(--color-readonly);
16824
+ --x-button-border-color: var(--button-border-color-readonly);
16825
+ --x-button-background-color: var(--button-background-color-readonly);
16826
+ --x-button-color: var(--button-color-readonly);
16704
16827
  }
16705
16828
  /* Focus */
16706
16829
  .navi_button[data-focus-visible] {
16707
- --x-border-color: var(--x-outline-color);
16830
+ --x-button-border-color: var(--x-button-outline-color);
16708
16831
  }
16709
16832
  .navi_button[data-focus-visible] .navi_button_content {
16710
- outline-width: var(--x-outer-width);
16711
- outline-offset: calc(-1 * var(--x-outer-width));
16833
+ outline-width: var(--x-button-outer-width);
16834
+ outline-offset: calc(-1 * var(--x-button-outer-width));
16712
16835
  }
16713
16836
  /* Disabled */
16714
16837
  .navi_button[data-disabled] {
@@ -16716,9 +16839,9 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
16716
16839
  cursor: default;
16717
16840
  }
16718
16841
  .navi_button[data-disabled] {
16719
- --x-border-color: var(--border-color-disabled);
16720
- --x-background-color: var(--background-color-disabled);
16721
- --x-color: var(--color-disabled);
16842
+ --x-border-color: var(--button-border-color-disabled);
16843
+ --x-background-color: var(--button-background-color-disabled);
16844
+ --x-color: var(--button-color-disabled);
16722
16845
  }
16723
16846
  /* no active effect */
16724
16847
  .navi_button[data-disabled] .navi_button_content {
@@ -16729,22 +16852,22 @@ installImportMetaCss(import.meta);import.meta.css = /* css */`
16729
16852
  }
16730
16853
  /* Callout (info, warning, error) */
16731
16854
  .navi_button[data-callout] {
16732
- --x-border-color: var(--callout-color);
16855
+ --x-button-border-color: var(--callout-color);
16733
16856
  }
16734
16857
 
16735
16858
  /* Discrete variant */
16736
16859
  .navi_button[data-discrete] {
16737
- --x-background-color: transparent;
16738
- --x-border-color: transparent;
16860
+ --x-button-background-color: transparent;
16861
+ --x-button-border-color: transparent;
16739
16862
  }
16740
16863
  .navi_button[data-discrete][data-hover] {
16741
- --x-border-color: var(--border-color-hover);
16864
+ --x-button-border-color: var(--button-border-color-hover);
16742
16865
  }
16743
16866
  .navi_button[data-discrete][data-readonly] {
16744
- --x-border-color: transparent;
16867
+ --x-button-border-color: transparent;
16745
16868
  }
16746
16869
  .navi_button[data-discrete][data-disabled] {
16747
- --x-border-color: transparent;
16870
+ --x-button-border-color: transparent;
16748
16871
  }
16749
16872
  `;
16750
16873
  const Button = props => {
@@ -16756,33 +16879,33 @@ const Button = props => {
16756
16879
  });
16757
16880
  };
16758
16881
  const ButtonManagedByCSSVars = {
16759
- "outlineWidth": "--outline-width",
16760
- "borderWidth": "--border-width",
16761
- "borderRadius": "--border-radius",
16762
- "paddingTop": "--padding-top",
16763
- "paddingRight": "--padding-right",
16764
- "paddingBottom": "--padding-bottom",
16765
- "paddingLeft": "--padding-left",
16766
- "backgroundColor": "--background-color",
16767
- "borderColor": "--border-color",
16768
- "color": "--color",
16882
+ "outlineWidth": "--button-outline-width",
16883
+ "borderWidth": "--button-border-width",
16884
+ "borderRadius": "--button-border-radius",
16885
+ "paddingTop": "--button-padding-top",
16886
+ "paddingRight": "--button-padding-right",
16887
+ "paddingBottom": "--button-padding-bottom",
16888
+ "paddingLeft": "--button-padding-left",
16889
+ "backgroundColor": "--button-background-color",
16890
+ "borderColor": "--button-border-color",
16891
+ "color": "--button-color",
16769
16892
  ":hover": {
16770
- backgroundColor: "--background-color-hover",
16771
- borderColor: "--border-color-hover",
16772
- color: "--color-hover"
16893
+ backgroundColor: "--button-background-color-hover",
16894
+ borderColor: "--button-border-color-hover",
16895
+ color: "--button-color-hover"
16773
16896
  },
16774
16897
  ":active": {
16775
- borderColor: "--border-color-active"
16898
+ borderColor: "--button-border-color-active"
16776
16899
  },
16777
16900
  ":read-only": {
16778
- backgroundColor: "--background-color-readonly",
16779
- borderColor: "--border-color-readonly",
16780
- color: "--color-readonly"
16901
+ backgroundColor: "--button-background-color-readonly",
16902
+ borderColor: "--button-border-color-readonly",
16903
+ color: "--button-color-readonly"
16781
16904
  },
16782
16905
  ":disabled": {
16783
- backgroundColor: "--background-color-disabled",
16784
- borderColor: "--border-color-disabled",
16785
- color: "--color-disabled"
16906
+ backgroundColor: "--button-background-color-disabled",
16907
+ borderColor: "--button-border-color-disabled",
16908
+ color: "--button-color-disabled"
16786
16909
  }
16787
16910
  };
16788
16911
  const ButtonPseudoClasses = [":hover", ":active", ":focus", ":focus-visible", ":read-only", ":disabled", ":-navi-loading"];
@@ -16800,7 +16923,6 @@ const ButtonBasic = props => {
16800
16923
  autoFocus,
16801
16924
  // visual
16802
16925
  discrete,
16803
- contentSpacing = " ",
16804
16926
  children,
16805
16927
  ...rest
16806
16928
  } = props;
@@ -16811,13 +16933,11 @@ const ButtonBasic = props => {
16811
16933
  const innerLoading = loading || contextLoading && contextLoadingElement === ref.current;
16812
16934
  const innerReadOnly = readOnly || contextReadOnly || innerLoading;
16813
16935
  const innerDisabled = disabled || contextDisabled;
16814
- const innerChildren = applyContentSpacingOnTextChildren(children, contentSpacing);
16815
16936
  const renderButtonContent = buttonProps => {
16816
- return jsxs(Box, {
16937
+ return jsxs(Text, {
16817
16938
  ...buttonProps,
16818
- as: "span",
16819
16939
  className: "navi_button_content",
16820
- children: [innerChildren, jsx("span", {
16940
+ children: [children, jsx("span", {
16821
16941
  className: "navi_button_shadow"
16822
16942
  })]
16823
16943
  });
@@ -21314,10 +21434,6 @@ const useSignalSync = (value, initialValue = value) => {
21314
21434
  return signal;
21315
21435
  };
21316
21436
 
21317
- const FontSizedSvg = () => {};
21318
-
21319
- const IconAndText = () => {};
21320
-
21321
21437
  installImportMetaCss(import.meta);import.meta.css = /* css */`
21322
21438
  .svg_mask_content * {
21323
21439
  fill: black !important;
@@ -21411,11 +21527,11 @@ const useContrastingColor = (ref) => {
21411
21527
 
21412
21528
  installImportMetaCss(import.meta);import.meta.css = /* css */`
21413
21529
  @layer navi {
21414
- .navi_badge {
21530
+ .navi_badge_count {
21415
21531
  --border-radius: 1em;
21416
21532
  }
21417
21533
  }
21418
- .navi_badge {
21534
+ .navi_badge_count {
21419
21535
  display: inline-block;
21420
21536
  box-sizing: border-box;
21421
21537
  min-width: 1.5em;
@@ -21471,34 +21587,21 @@ const BadgeCount = ({
21471
21587
  return jsx(Text, {
21472
21588
  ...props,
21473
21589
  ref: ref,
21474
- className: "navi_badge",
21590
+ className: "navi_badge_count",
21475
21591
  bold: bold,
21476
21592
  managedByCSSVars: BadgeManagedByCSSVars,
21593
+ contentSpacing: "pre",
21477
21594
  children: displayValue
21478
21595
  });
21479
21596
  };
21480
21597
 
21481
- const Code = ({
21482
- contentSpacing = " ",
21483
- children,
21484
- ...rest
21485
- }) => {
21486
- return jsx(Box, {
21487
- ...rest,
21488
- as: "code",
21489
- children: applyContentSpacingOnTextChildren(children, contentSpacing)
21490
- });
21491
- };
21492
-
21493
- const Image = props => {
21494
- return jsx(Box, {
21598
+ const Code = props => {
21599
+ return jsx(Text, {
21495
21600
  ...props,
21496
- as: "img"
21601
+ as: "code"
21497
21602
  });
21498
21603
  };
21499
21604
 
21500
- const LinkWithIcon = () => {};
21501
-
21502
21605
  installImportMetaCss(import.meta);import.meta.css = /* css */`
21503
21606
  @layer navi {
21504
21607
  .navi_message_box {
@@ -21591,19 +21694,19 @@ const MessageBoxReportTitleChildContext = createContext();
21591
21694
  const MessageBox = ({
21592
21695
  level = "info",
21593
21696
  padding = "sm",
21594
- contentSpacing = " ",
21595
21697
  leftStripe,
21596
21698
  children,
21699
+ contentSpacing,
21597
21700
  ...rest
21598
21701
  }) => {
21599
21702
  const [hasTitleChild, setHasTitleChild] = useState(false);
21600
21703
  const innerLeftStripe = leftStripe === undefined ? hasTitleChild : leftStripe;
21601
- return jsx(Box, {
21704
+ return jsx(Text, {
21602
21705
  as: "div",
21603
21706
  role: level === "info" ? "status" : "alert",
21604
21707
  "data-left-stripe": innerLeftStripe ? "" : undefined,
21605
21708
  ...rest,
21606
- baseClassName: "navi_message_box",
21709
+ className: withPropsClassName("navi_message_box", rest.className),
21607
21710
  padding: padding,
21608
21711
  pseudoClasses: MessageBoxPseudoClasses,
21609
21712
  basePseudoState: {
@@ -21622,94 +21725,126 @@ const MessageBox = ({
21622
21725
  });
21623
21726
  };
21624
21727
 
21625
- const Svg = props => {
21626
- return jsx(Box, {
21728
+ const Paragraph = props => {
21729
+ return jsx(Text, {
21730
+ marginTop: "md",
21627
21731
  ...props,
21628
- as: "svg"
21732
+ as: "p",
21733
+ ...props
21629
21734
  });
21630
21735
  };
21631
21736
 
21632
- const Title = ({
21633
- as,
21634
- bold = true,
21635
- contentSpacing = " ",
21636
- color,
21637
- children,
21638
- marginTop,
21639
- marginBottom,
21640
- ...rest
21641
- }) => {
21737
+ const Title = props => {
21642
21738
  const messageBoxLevel = useContext(MessageBoxLevelContext);
21643
21739
  const reportTitleToMessageBox = useContext(MessageBoxReportTitleChildContext);
21644
- const innerColor = color === undefined ? messageBoxLevel ? `var(--x-color)` : undefined : color;
21645
- const innerAs = as === undefined ? messageBoxLevel ? "h4" : "h1" : as;
21646
21740
  reportTitleToMessageBox?.(true);
21647
- const innerMarginTop = marginTop === undefined ? messageBoxLevel ? "0" : undefined : marginTop;
21648
- const innerMarginBottom = marginBottom === undefined ? messageBoxLevel ? "8px" : undefined : marginBottom;
21741
+ return jsx(Text, {
21742
+ bold: true,
21743
+ as: messageBoxLevel ? "h4" : "h1",
21744
+ marginTop: messageBoxLevel ? "0" : undefined,
21745
+ marginBottom: messageBoxLevel ? "sm" : undefined,
21746
+ color: messageBoxLevel ? `var(--x-color)` : undefined,
21747
+ ...props
21748
+ });
21749
+ };
21750
+
21751
+ const FontSizedSvg = () => {};
21752
+
21753
+ const IconAndText = () => {};
21754
+
21755
+ const LinkWithIcon = () => {};
21756
+
21757
+ const Image = props => {
21649
21758
  return jsx(Box, {
21650
- ...rest,
21651
- as: innerAs,
21652
- bold: bold,
21653
- color: innerColor,
21654
- marginTop: innerMarginTop,
21655
- marginBottom: innerMarginBottom,
21656
- children: applyContentSpacingOnTextChildren(children, contentSpacing)
21759
+ ...props,
21760
+ as: "img"
21761
+ });
21762
+ };
21763
+
21764
+ const Svg = props => {
21765
+ return jsx(Box, {
21766
+ ...props,
21767
+ as: "svg"
21657
21768
  });
21658
21769
  };
21659
21770
 
21660
21771
  installImportMetaCss(import.meta);import.meta.css = /* css */`
21661
21772
  @layer navi {
21662
21773
  .navi_dialog_layout {
21663
- --margin: 30px;
21664
- --padding: 20px;
21665
- --background: white;
21666
- --border-width: 2px;
21667
- --border-color: lightgrey;
21668
- --border-radius: 10px;
21669
- --min-width: 300px;
21670
- --min-height: auto;
21774
+ --dialog-margin: 30px;
21775
+ --dialog-padding: 20px;
21776
+ --dialog-background: white;
21777
+ --dialog-border-width: 2px;
21778
+ --dialog-border-color: lightgrey;
21779
+ --dialog-border-radius: 10px;
21780
+ --dialog-min-width: 300px;
21781
+ --dialog-min-height: auto;
21671
21782
  }
21672
21783
  }
21673
21784
  .navi_dialog_layout {
21674
- padding-top: var(--margin-top, var(--margin-y, var(--margin)));
21675
- padding-right: var(--margin-right, var(--margin-x, var(--margin)));
21676
- padding-bottom: var(--margin-bottom, var(--margin-y, var(--margin)));
21677
- padding-left: var(--margin-left, var(--margin-x, var(--margin)));
21785
+ padding-top: var(
21786
+ --dialog-margin-top,
21787
+ var(--dialog-margin-y, var(--dialog-margin))
21788
+ );
21789
+ padding-right: var(
21790
+ --dialog-margin-right,
21791
+ var(--dialog-margin-x, var(--dialog-margin))
21792
+ );
21793
+ padding-bottom: var(
21794
+ --dialog-margin-bottom,
21795
+ var(--dialog-margin-y, var(--dialog-margin))
21796
+ );
21797
+ padding-left: var(
21798
+ --dialog-margin-left,
21799
+ var(--dialog-margin-x, var(--dialog-margin))
21800
+ );
21678
21801
  }
21679
21802
 
21680
21803
  .navi_dialog_content {
21681
- min-width: var(--min-width);
21682
- min-height: var(--min-height);
21683
- padding-top: var(--padding-top, var(--padding-y, var(--padding)));
21684
- padding-right: var(--padding-right, var(--padding-x, var(--padding)));
21685
- padding-bottom: var(--padding-bottom, var(--padding-y, var(--padding)));
21686
- padding-left: var(--padding-left, var(--padding-x, var(--padding)));
21687
- background: var(--background);
21688
- background-color: var(--background-color, var(--background));
21689
- border-width: var(--border-width);
21804
+ min-width: var(--dialog-min-width);
21805
+ min-height: var(--dialog-min-height);
21806
+ padding-top: var(
21807
+ --dialog-padding-top,
21808
+ var(--dialog-padding-y, var(--dialog-padding))
21809
+ );
21810
+ padding-right: var(
21811
+ --dialog-padding-right,
21812
+ var(--dialog-padding-x, var(--dialog-padding))
21813
+ );
21814
+ padding-bottom: var(
21815
+ --dialog-padding-bottom,
21816
+ var(--dialog-padding-y, var(--dialog-padding))
21817
+ );
21818
+ padding-left: var(
21819
+ --dialog-padding-left,
21820
+ var(--dialog-padding-x, var(--dialog-padding))
21821
+ );
21822
+ background: var(--dialog-background);
21823
+ background-color: var(--dialog-background-color, var(--dialog-background));
21824
+ border-width: var(--dialog-border-width);
21690
21825
  border-style: solid;
21691
- border-color: var(--border-color);
21692
- border-radius: var(--border-radius);
21826
+ border-color: var(--dialog-border-color);
21827
+ border-radius: var(--dialog-border-radius);
21693
21828
  }
21694
21829
  `;
21695
21830
  const DialogManagedByCSSVars = {
21696
- margin: "--margin",
21697
- marginTop: "--margin-top",
21698
- marginBottom: "--margin-bottom",
21699
- marginLeft: "--margin-left",
21700
- marginRight: "--margin-right",
21701
- borderRadius: "--border-radius",
21702
- borderWidth: "--border-width",
21703
- borderColor: "--border-color",
21704
- background: "--background",
21705
- backgroundColor: "--background-color",
21706
- padding: "--padding",
21707
- paddingTop: "--padding-top",
21708
- paddingBottom: "--padding-bottom",
21709
- paddingLeft: "--padding-left",
21710
- paddingRight: "--padding-right",
21711
- minWidth: "--min-width",
21712
- minHeight: "--min-height"
21831
+ margin: "--dialog-margin",
21832
+ marginTop: "--dialog-margin-top",
21833
+ marginBottom: "--dialog-margin-bottom",
21834
+ marginLeft: "--dialog-margin-left",
21835
+ marginRight: "--dialog-margin-right",
21836
+ borderRadius: "--dialog-border-radius",
21837
+ borderWidth: "--dialog-border-width",
21838
+ borderColor: "--dialog-border-color",
21839
+ background: "--dialog-background",
21840
+ backgroundColor: "--dialog-background-color",
21841
+ padding: "--dialog-padding",
21842
+ paddingTop: "--dialog-padding-top",
21843
+ paddingBottom: "--dialog-padding-bottom",
21844
+ paddingLeft: "--dialog-padding-left",
21845
+ paddingRight: "--dialog-padding-right",
21846
+ minWidth: "--dialog-min-width",
21847
+ minHeight: "--dialog-min-height"
21713
21848
  };
21714
21849
  const DialogLayout = ({
21715
21850
  children,