@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.
- package/dist/jsenv_navi.js +477 -342
- package/dist/jsenv_navi.js.map +80 -53
- package/package.json +1 -1
package/dist/jsenv_navi.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
13548
|
-
|
|
13549
|
-
children: jsx(
|
|
13550
|
-
|
|
13551
|
-
children:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
16602
|
-
--background-color-hover: color-mix(
|
|
16694
|
+
--button-border-color-hover: color-mix(
|
|
16603
16695
|
in srgb,
|
|
16604
|
-
var(--
|
|
16696
|
+
var(--button-border-color) 70%,
|
|
16605
16697
|
black
|
|
16606
16698
|
);
|
|
16607
|
-
--color-hover:
|
|
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(
|
|
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(
|
|
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(
|
|
16621
|
-
|
|
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(
|
|
16632
|
-
|
|
16633
|
-
|
|
16634
|
-
--x-
|
|
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
|
-
|
|
16651
|
-
|
|
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(
|
|
16657
|
-
|
|
16658
|
-
|
|
16659
|
-
|
|
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(
|
|
16937
|
+
return jsxs(Text, {
|
|
16817
16938
|
...buttonProps,
|
|
16818
|
-
as: "span",
|
|
16819
16939
|
className: "navi_button_content",
|
|
16820
|
-
children: [
|
|
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
|
-
.
|
|
21530
|
+
.navi_badge_count {
|
|
21415
21531
|
--border-radius: 1em;
|
|
21416
21532
|
}
|
|
21417
21533
|
}
|
|
21418
|
-
.
|
|
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: "
|
|
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
|
-
|
|
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: "
|
|
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(
|
|
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
|
-
|
|
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
|
|
21626
|
-
return jsx(
|
|
21728
|
+
const Paragraph = props => {
|
|
21729
|
+
return jsx(Text, {
|
|
21730
|
+
marginTop: "md",
|
|
21627
21731
|
...props,
|
|
21628
|
-
as: "
|
|
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
|
-
|
|
21648
|
-
|
|
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
|
-
...
|
|
21651
|
-
as:
|
|
21652
|
-
|
|
21653
|
-
|
|
21654
|
-
|
|
21655
|
-
|
|
21656
|
-
|
|
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(
|
|
21675
|
-
|
|
21676
|
-
|
|
21677
|
-
|
|
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(
|
|
21684
|
-
|
|
21685
|
-
|
|
21686
|
-
|
|
21687
|
-
|
|
21688
|
-
|
|
21689
|
-
|
|
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,
|