@os-legal/ui 0.1.13 → 0.1.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/index.d.mts +19 -2
- package/dist/index.d.ts +19 -2
- package/dist/index.js +92 -20
- package/dist/index.mjs +92 -20
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -123,7 +123,7 @@ __export(index_exports, {
|
|
|
123
123
|
ModalHeader: () => ModalHeader,
|
|
124
124
|
NavBar: () => NavBar,
|
|
125
125
|
NewDiscussionButton: () => NewDiscussionButton,
|
|
126
|
-
Node: () =>
|
|
126
|
+
Node: () => Node2,
|
|
127
127
|
PageHeader: () => PageHeader,
|
|
128
128
|
Pane: () => Pane,
|
|
129
129
|
PanelAction: () => PanelAction,
|
|
@@ -6248,6 +6248,7 @@ function DropdownInner({
|
|
|
6248
6248
|
searchable = false,
|
|
6249
6249
|
onSearchChange,
|
|
6250
6250
|
searchDebounceMs = 300,
|
|
6251
|
+
iconSize,
|
|
6251
6252
|
fluid = false,
|
|
6252
6253
|
upward = false,
|
|
6253
6254
|
align = "left",
|
|
@@ -6255,6 +6256,8 @@ function DropdownInner({
|
|
|
6255
6256
|
renderOption,
|
|
6256
6257
|
renderTag,
|
|
6257
6258
|
renderEmpty,
|
|
6259
|
+
wrapDescriptions = false,
|
|
6260
|
+
showDescriptionInTrigger = false,
|
|
6258
6261
|
maxMenuHeight = 300,
|
|
6259
6262
|
className = "",
|
|
6260
6263
|
style,
|
|
@@ -6262,6 +6265,7 @@ function DropdownInner({
|
|
|
6262
6265
|
"aria-labelledby": ariaLabelledBy,
|
|
6263
6266
|
onOpen,
|
|
6264
6267
|
onClose,
|
|
6268
|
+
onBlur,
|
|
6265
6269
|
children
|
|
6266
6270
|
}, ref) {
|
|
6267
6271
|
const generatedId = (0, import_react20.useId)();
|
|
@@ -6573,9 +6577,13 @@ function DropdownInner({
|
|
|
6573
6577
|
};
|
|
6574
6578
|
const selectedOpt = getSelectedOption();
|
|
6575
6579
|
const hasValue = mode === "multiselect" ? (currentValue || []).length > 0 : currentValue != null;
|
|
6576
|
-
const renderIcon = (icon) => {
|
|
6580
|
+
const renderIcon = (icon, size) => {
|
|
6581
|
+
const sizeStyle = size ? { "--oc-dropdown-icon-size": `${size}px` } : void 0;
|
|
6577
6582
|
if (typeof icon === "string") {
|
|
6578
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { src: icon, alt: "", className: "oc-dropdown__option-icon-img" });
|
|
6583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { src: icon, alt: "", className: "oc-dropdown__option-icon-img", style: sizeStyle });
|
|
6584
|
+
}
|
|
6585
|
+
if (size) {
|
|
6586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { style: sizeStyle, children: icon });
|
|
6579
6587
|
}
|
|
6580
6588
|
return icon;
|
|
6581
6589
|
};
|
|
@@ -6606,8 +6614,11 @@ function DropdownInner({
|
|
|
6606
6614
|
}
|
|
6607
6615
|
if (mode === "select" && selectedOpt && !Array.isArray(selectedOpt)) {
|
|
6608
6616
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "oc-dropdown__trigger-content", children: [
|
|
6609
|
-
selectedOpt.icon && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__trigger-icon", children: renderIcon(selectedOpt.icon) }),
|
|
6610
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.
|
|
6617
|
+
selectedOpt.icon && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__trigger-icon", children: renderIcon(selectedOpt.icon, selectedOpt.iconSize ?? iconSize) }),
|
|
6618
|
+
showDescriptionInTrigger && selectedOpt.description ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "oc-dropdown__trigger-value-group", children: [
|
|
6619
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__value", children: selectedOpt.label }),
|
|
6620
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__trigger-description", children: selectedOpt.description })
|
|
6621
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__value", children: selectedOpt.label })
|
|
6611
6622
|
] });
|
|
6612
6623
|
}
|
|
6613
6624
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "oc-dropdown__trigger-content", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__placeholder", children: placeholder }) });
|
|
@@ -6743,7 +6754,7 @@ function DropdownInner({
|
|
|
6743
6754
|
onMouseEnter: () => !opt.disabled && setFocusedIndex(index),
|
|
6744
6755
|
"data-oc-dropdown-index": index,
|
|
6745
6756
|
children: [
|
|
6746
|
-
opt.icon && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__option-icon", children: renderIcon(opt.icon) }),
|
|
6757
|
+
opt.icon && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__option-icon", children: renderIcon(opt.icon, opt.iconSize ?? iconSize) }),
|
|
6747
6758
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "oc-dropdown__option-content", children: [
|
|
6748
6759
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__option-label", children: opt.label }),
|
|
6749
6760
|
opt.description && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "oc-dropdown__option-description", children: opt.description })
|
|
@@ -6829,12 +6840,23 @@ function DropdownInner({
|
|
|
6829
6840
|
itemCounterRef.current = 0;
|
|
6830
6841
|
}
|
|
6831
6842
|
}, [isOpen, mode]);
|
|
6843
|
+
const handleFocusOut = (0, import_react20.useCallback)(
|
|
6844
|
+
(e) => {
|
|
6845
|
+
if (!onBlur) return;
|
|
6846
|
+
if (containerRef.current && e.relatedTarget instanceof Node && containerRef.current.contains(e.relatedTarget)) {
|
|
6847
|
+
return;
|
|
6848
|
+
}
|
|
6849
|
+
onBlur(e);
|
|
6850
|
+
},
|
|
6851
|
+
[onBlur]
|
|
6852
|
+
);
|
|
6832
6853
|
const rootClasses = [
|
|
6833
6854
|
"oc-dropdown",
|
|
6834
6855
|
`oc-dropdown--${mode}`,
|
|
6835
6856
|
fluid && "oc-dropdown--fluid",
|
|
6836
6857
|
isOpen && "oc-dropdown--open",
|
|
6837
6858
|
disabled && "oc-dropdown--disabled",
|
|
6859
|
+
wrapDescriptions && "oc-dropdown--wrap-descriptions",
|
|
6838
6860
|
className
|
|
6839
6861
|
].filter(Boolean).join(" ");
|
|
6840
6862
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
@@ -6851,6 +6873,7 @@ function DropdownInner({
|
|
|
6851
6873
|
className: rootClasses,
|
|
6852
6874
|
style,
|
|
6853
6875
|
onKeyDown: mode === "menu" ? handleMenuKeyDown : handleKeyDown,
|
|
6876
|
+
onBlur: handleFocusOut,
|
|
6854
6877
|
children: [
|
|
6855
6878
|
renderTriggerElement(),
|
|
6856
6879
|
renderMenu()
|
|
@@ -6886,7 +6909,7 @@ var dropdownStyles = `
|
|
|
6886
6909
|
align-items: center;
|
|
6887
6910
|
justify-content: space-between;
|
|
6888
6911
|
gap: var(--oc-spacing-sm);
|
|
6889
|
-
min-height:
|
|
6912
|
+
min-height: 44px;
|
|
6890
6913
|
padding: 6px 12px;
|
|
6891
6914
|
background: var(--oc-bg-surface);
|
|
6892
6915
|
border: 1px solid var(--oc-border-default);
|
|
@@ -6962,8 +6985,15 @@ var dropdownStyles = `
|
|
|
6962
6985
|
}
|
|
6963
6986
|
|
|
6964
6987
|
.oc-dropdown__trigger-icon svg {
|
|
6965
|
-
width: 16px;
|
|
6966
|
-
height: 16px;
|
|
6988
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
6989
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
6990
|
+
}
|
|
6991
|
+
|
|
6992
|
+
.oc-dropdown__trigger-icon .oc-dropdown__option-icon-img {
|
|
6993
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
6994
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
6995
|
+
object-fit: contain;
|
|
6996
|
+
border-radius: 2px;
|
|
6967
6997
|
}
|
|
6968
6998
|
|
|
6969
6999
|
.oc-dropdown__value {
|
|
@@ -6974,6 +7004,22 @@ var dropdownStyles = `
|
|
|
6974
7004
|
color: var(--oc-fg-primary);
|
|
6975
7005
|
}
|
|
6976
7006
|
|
|
7007
|
+
.oc-dropdown__trigger-value-group {
|
|
7008
|
+
display: flex;
|
|
7009
|
+
flex-direction: column;
|
|
7010
|
+
flex: 1;
|
|
7011
|
+
min-width: 0;
|
|
7012
|
+
}
|
|
7013
|
+
|
|
7014
|
+
.oc-dropdown__trigger-description {
|
|
7015
|
+
font-size: var(--oc-font-size-xs);
|
|
7016
|
+
color: var(--oc-fg-secondary);
|
|
7017
|
+
line-height: var(--oc-line-height-normal);
|
|
7018
|
+
white-space: nowrap;
|
|
7019
|
+
overflow: hidden;
|
|
7020
|
+
text-overflow: ellipsis;
|
|
7021
|
+
}
|
|
7022
|
+
|
|
6977
7023
|
.oc-dropdown__placeholder {
|
|
6978
7024
|
flex: 1;
|
|
6979
7025
|
white-space: nowrap;
|
|
@@ -7140,6 +7186,7 @@ var dropdownStyles = `
|
|
|
7140
7186
|
display: flex;
|
|
7141
7187
|
align-items: center;
|
|
7142
7188
|
gap: var(--oc-spacing-sm);
|
|
7189
|
+
min-height: 44px;
|
|
7143
7190
|
padding: 10px 14px;
|
|
7144
7191
|
border-bottom: 1px solid var(--oc-border-default);
|
|
7145
7192
|
}
|
|
@@ -7218,6 +7265,7 @@ var dropdownStyles = `
|
|
|
7218
7265
|
display: flex;
|
|
7219
7266
|
align-items: center;
|
|
7220
7267
|
gap: var(--oc-spacing-sm);
|
|
7268
|
+
min-height: 44px;
|
|
7221
7269
|
padding: 10px 14px;
|
|
7222
7270
|
font-size: var(--oc-font-size-sm);
|
|
7223
7271
|
color: var(--oc-fg-primary);
|
|
@@ -7261,13 +7309,13 @@ var dropdownStyles = `
|
|
|
7261
7309
|
}
|
|
7262
7310
|
|
|
7263
7311
|
.oc-dropdown__option-icon svg {
|
|
7264
|
-
width: 16px;
|
|
7265
|
-
height: 16px;
|
|
7312
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
7313
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
7266
7314
|
}
|
|
7267
7315
|
|
|
7268
7316
|
.oc-dropdown__option-icon-img {
|
|
7269
|
-
width: 16px;
|
|
7270
|
-
height: 16px;
|
|
7317
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
7318
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
7271
7319
|
object-fit: contain;
|
|
7272
7320
|
border-radius: 2px;
|
|
7273
7321
|
}
|
|
@@ -7295,6 +7343,12 @@ var dropdownStyles = `
|
|
|
7295
7343
|
text-overflow: ellipsis;
|
|
7296
7344
|
}
|
|
7297
7345
|
|
|
7346
|
+
.oc-dropdown--wrap-descriptions .oc-dropdown__option-description {
|
|
7347
|
+
white-space: normal;
|
|
7348
|
+
overflow: visible;
|
|
7349
|
+
text-overflow: clip;
|
|
7350
|
+
}
|
|
7351
|
+
|
|
7298
7352
|
.oc-dropdown__option--selected .oc-dropdown__option-description {
|
|
7299
7353
|
color: var(--oc-accent);
|
|
7300
7354
|
opacity: 0.7;
|
|
@@ -7314,6 +7368,7 @@ var dropdownStyles = `
|
|
|
7314
7368
|
display: flex;
|
|
7315
7369
|
align-items: center;
|
|
7316
7370
|
gap: var(--oc-spacing-sm);
|
|
7371
|
+
min-height: 44px;
|
|
7317
7372
|
padding: 10px 14px;
|
|
7318
7373
|
font-size: var(--oc-font-size-sm);
|
|
7319
7374
|
color: var(--oc-fg-primary);
|
|
@@ -7348,8 +7403,8 @@ var dropdownStyles = `
|
|
|
7348
7403
|
}
|
|
7349
7404
|
|
|
7350
7405
|
.oc-dropdown__item-icon svg {
|
|
7351
|
-
width: 16px;
|
|
7352
|
-
height: 16px;
|
|
7406
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
7407
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
7353
7408
|
}
|
|
7354
7409
|
|
|
7355
7410
|
.oc-dropdown__item-label {
|
|
@@ -7407,8 +7462,13 @@ var dropdownStyles = `
|
|
|
7407
7462
|
/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
7408
7463
|
|
|
7409
7464
|
@media (max-width: 600px) {
|
|
7465
|
+
/* 16px minimum prevents iOS Safari auto-zoom on focus */
|
|
7410
7466
|
.oc-dropdown__trigger {
|
|
7411
|
-
|
|
7467
|
+
font-size: 16px;
|
|
7468
|
+
}
|
|
7469
|
+
|
|
7470
|
+
.oc-dropdown__search-input {
|
|
7471
|
+
font-size: 16px;
|
|
7412
7472
|
}
|
|
7413
7473
|
|
|
7414
7474
|
.oc-dropdown--fluid .oc-dropdown__menu {
|
|
@@ -7416,6 +7476,18 @@ var dropdownStyles = `
|
|
|
7416
7476
|
right: 0;
|
|
7417
7477
|
}
|
|
7418
7478
|
}
|
|
7479
|
+
|
|
7480
|
+
/* \u2500\u2500\u2500 Coarse pointer (touch) feedback \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
7481
|
+
|
|
7482
|
+
@media (pointer: coarse) {
|
|
7483
|
+
.oc-dropdown__option:active:not(.oc-dropdown__option--disabled) {
|
|
7484
|
+
background: rgba(15, 118, 110, 0.12);
|
|
7485
|
+
}
|
|
7486
|
+
|
|
7487
|
+
.oc-dropdown__item:active:not(.oc-dropdown__item--disabled) {
|
|
7488
|
+
background: rgba(15, 118, 110, 0.12);
|
|
7489
|
+
}
|
|
7490
|
+
}
|
|
7419
7491
|
`;
|
|
7420
7492
|
|
|
7421
7493
|
// src/Checkbox/Checkbox.tsx
|
|
@@ -18654,7 +18726,7 @@ var dataGridStyles = `
|
|
|
18654
18726
|
// src/Node/Node.tsx
|
|
18655
18727
|
var import_react52 = require("react");
|
|
18656
18728
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
18657
|
-
var
|
|
18729
|
+
var Node2 = (0, import_react52.forwardRef)(
|
|
18658
18730
|
({
|
|
18659
18731
|
size = "sm",
|
|
18660
18732
|
variant = "default",
|
|
@@ -18679,7 +18751,7 @@ var Node = (0, import_react52.forwardRef)(
|
|
|
18679
18751
|
] });
|
|
18680
18752
|
}
|
|
18681
18753
|
);
|
|
18682
|
-
|
|
18754
|
+
Node2.displayName = "Node";
|
|
18683
18755
|
|
|
18684
18756
|
// src/Node/Node.styles.ts
|
|
18685
18757
|
var nodeStyles = `
|
|
@@ -19041,7 +19113,7 @@ var RelationshipBadge = (0, import_react54.forwardRef)(
|
|
|
19041
19113
|
...props,
|
|
19042
19114
|
children: [
|
|
19043
19115
|
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
19044
|
-
|
|
19116
|
+
Node2,
|
|
19045
19117
|
{
|
|
19046
19118
|
size: size === "sm" ? "xs" : "sm",
|
|
19047
19119
|
variant: active ? "active" : "muted",
|
|
@@ -19182,7 +19254,7 @@ var RelationshipPill = (0, import_react55.forwardRef)(
|
|
|
19182
19254
|
...props,
|
|
19183
19255
|
children: [
|
|
19184
19256
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
19185
|
-
|
|
19257
|
+
Node2,
|
|
19186
19258
|
{
|
|
19187
19259
|
size: "xs",
|
|
19188
19260
|
variant: active ? "active" : "default"
|
package/dist/index.mjs
CHANGED
|
@@ -5987,6 +5987,7 @@ function DropdownInner({
|
|
|
5987
5987
|
searchable = false,
|
|
5988
5988
|
onSearchChange,
|
|
5989
5989
|
searchDebounceMs = 300,
|
|
5990
|
+
iconSize,
|
|
5990
5991
|
fluid = false,
|
|
5991
5992
|
upward = false,
|
|
5992
5993
|
align = "left",
|
|
@@ -5994,6 +5995,8 @@ function DropdownInner({
|
|
|
5994
5995
|
renderOption,
|
|
5995
5996
|
renderTag,
|
|
5996
5997
|
renderEmpty,
|
|
5998
|
+
wrapDescriptions = false,
|
|
5999
|
+
showDescriptionInTrigger = false,
|
|
5997
6000
|
maxMenuHeight = 300,
|
|
5998
6001
|
className = "",
|
|
5999
6002
|
style,
|
|
@@ -6001,6 +6004,7 @@ function DropdownInner({
|
|
|
6001
6004
|
"aria-labelledby": ariaLabelledBy,
|
|
6002
6005
|
onOpen,
|
|
6003
6006
|
onClose,
|
|
6007
|
+
onBlur,
|
|
6004
6008
|
children
|
|
6005
6009
|
}, ref) {
|
|
6006
6010
|
const generatedId = useId4();
|
|
@@ -6312,9 +6316,13 @@ function DropdownInner({
|
|
|
6312
6316
|
};
|
|
6313
6317
|
const selectedOpt = getSelectedOption();
|
|
6314
6318
|
const hasValue = mode === "multiselect" ? (currentValue || []).length > 0 : currentValue != null;
|
|
6315
|
-
const renderIcon = (icon) => {
|
|
6319
|
+
const renderIcon = (icon, size) => {
|
|
6320
|
+
const sizeStyle = size ? { "--oc-dropdown-icon-size": `${size}px` } : void 0;
|
|
6316
6321
|
if (typeof icon === "string") {
|
|
6317
|
-
return /* @__PURE__ */ jsx20("img", { src: icon, alt: "", className: "oc-dropdown__option-icon-img" });
|
|
6322
|
+
return /* @__PURE__ */ jsx20("img", { src: icon, alt: "", className: "oc-dropdown__option-icon-img", style: sizeStyle });
|
|
6323
|
+
}
|
|
6324
|
+
if (size) {
|
|
6325
|
+
return /* @__PURE__ */ jsx20("span", { style: sizeStyle, children: icon });
|
|
6318
6326
|
}
|
|
6319
6327
|
return icon;
|
|
6320
6328
|
};
|
|
@@ -6345,8 +6353,11 @@ function DropdownInner({
|
|
|
6345
6353
|
}
|
|
6346
6354
|
if (mode === "select" && selectedOpt && !Array.isArray(selectedOpt)) {
|
|
6347
6355
|
return /* @__PURE__ */ jsxs17("div", { className: "oc-dropdown__trigger-content", children: [
|
|
6348
|
-
selectedOpt.icon && /* @__PURE__ */ jsx20("span", { className: "oc-dropdown__trigger-icon", children: renderIcon(selectedOpt.icon) }),
|
|
6349
|
-
/* @__PURE__ */
|
|
6356
|
+
selectedOpt.icon && /* @__PURE__ */ jsx20("span", { className: "oc-dropdown__trigger-icon", children: renderIcon(selectedOpt.icon, selectedOpt.iconSize ?? iconSize) }),
|
|
6357
|
+
showDescriptionInTrigger && selectedOpt.description ? /* @__PURE__ */ jsxs17("div", { className: "oc-dropdown__trigger-value-group", children: [
|
|
6358
|
+
/* @__PURE__ */ jsx20("span", { className: "oc-dropdown__value", children: selectedOpt.label }),
|
|
6359
|
+
/* @__PURE__ */ jsx20("span", { className: "oc-dropdown__trigger-description", children: selectedOpt.description })
|
|
6360
|
+
] }) : /* @__PURE__ */ jsx20("span", { className: "oc-dropdown__value", children: selectedOpt.label })
|
|
6350
6361
|
] });
|
|
6351
6362
|
}
|
|
6352
6363
|
return /* @__PURE__ */ jsx20("div", { className: "oc-dropdown__trigger-content", children: /* @__PURE__ */ jsx20("span", { className: "oc-dropdown__placeholder", children: placeholder }) });
|
|
@@ -6482,7 +6493,7 @@ function DropdownInner({
|
|
|
6482
6493
|
onMouseEnter: () => !opt.disabled && setFocusedIndex(index),
|
|
6483
6494
|
"data-oc-dropdown-index": index,
|
|
6484
6495
|
children: [
|
|
6485
|
-
opt.icon && /* @__PURE__ */ jsx20("span", { className: "oc-dropdown__option-icon", children: renderIcon(opt.icon) }),
|
|
6496
|
+
opt.icon && /* @__PURE__ */ jsx20("span", { className: "oc-dropdown__option-icon", children: renderIcon(opt.icon, opt.iconSize ?? iconSize) }),
|
|
6486
6497
|
/* @__PURE__ */ jsxs17("div", { className: "oc-dropdown__option-content", children: [
|
|
6487
6498
|
/* @__PURE__ */ jsx20("span", { className: "oc-dropdown__option-label", children: opt.label }),
|
|
6488
6499
|
opt.description && /* @__PURE__ */ jsx20("span", { className: "oc-dropdown__option-description", children: opt.description })
|
|
@@ -6568,12 +6579,23 @@ function DropdownInner({
|
|
|
6568
6579
|
itemCounterRef.current = 0;
|
|
6569
6580
|
}
|
|
6570
6581
|
}, [isOpen, mode]);
|
|
6582
|
+
const handleFocusOut = useCallback7(
|
|
6583
|
+
(e) => {
|
|
6584
|
+
if (!onBlur) return;
|
|
6585
|
+
if (containerRef.current && e.relatedTarget instanceof Node && containerRef.current.contains(e.relatedTarget)) {
|
|
6586
|
+
return;
|
|
6587
|
+
}
|
|
6588
|
+
onBlur(e);
|
|
6589
|
+
},
|
|
6590
|
+
[onBlur]
|
|
6591
|
+
);
|
|
6571
6592
|
const rootClasses = [
|
|
6572
6593
|
"oc-dropdown",
|
|
6573
6594
|
`oc-dropdown--${mode}`,
|
|
6574
6595
|
fluid && "oc-dropdown--fluid",
|
|
6575
6596
|
isOpen && "oc-dropdown--open",
|
|
6576
6597
|
disabled && "oc-dropdown--disabled",
|
|
6598
|
+
wrapDescriptions && "oc-dropdown--wrap-descriptions",
|
|
6577
6599
|
className
|
|
6578
6600
|
].filter(Boolean).join(" ");
|
|
6579
6601
|
return /* @__PURE__ */ jsxs17(
|
|
@@ -6590,6 +6612,7 @@ function DropdownInner({
|
|
|
6590
6612
|
className: rootClasses,
|
|
6591
6613
|
style,
|
|
6592
6614
|
onKeyDown: mode === "menu" ? handleMenuKeyDown : handleKeyDown,
|
|
6615
|
+
onBlur: handleFocusOut,
|
|
6593
6616
|
children: [
|
|
6594
6617
|
renderTriggerElement(),
|
|
6595
6618
|
renderMenu()
|
|
@@ -6625,7 +6648,7 @@ var dropdownStyles = `
|
|
|
6625
6648
|
align-items: center;
|
|
6626
6649
|
justify-content: space-between;
|
|
6627
6650
|
gap: var(--oc-spacing-sm);
|
|
6628
|
-
min-height:
|
|
6651
|
+
min-height: 44px;
|
|
6629
6652
|
padding: 6px 12px;
|
|
6630
6653
|
background: var(--oc-bg-surface);
|
|
6631
6654
|
border: 1px solid var(--oc-border-default);
|
|
@@ -6701,8 +6724,15 @@ var dropdownStyles = `
|
|
|
6701
6724
|
}
|
|
6702
6725
|
|
|
6703
6726
|
.oc-dropdown__trigger-icon svg {
|
|
6704
|
-
width: 16px;
|
|
6705
|
-
height: 16px;
|
|
6727
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
6728
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
6729
|
+
}
|
|
6730
|
+
|
|
6731
|
+
.oc-dropdown__trigger-icon .oc-dropdown__option-icon-img {
|
|
6732
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
6733
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
6734
|
+
object-fit: contain;
|
|
6735
|
+
border-radius: 2px;
|
|
6706
6736
|
}
|
|
6707
6737
|
|
|
6708
6738
|
.oc-dropdown__value {
|
|
@@ -6713,6 +6743,22 @@ var dropdownStyles = `
|
|
|
6713
6743
|
color: var(--oc-fg-primary);
|
|
6714
6744
|
}
|
|
6715
6745
|
|
|
6746
|
+
.oc-dropdown__trigger-value-group {
|
|
6747
|
+
display: flex;
|
|
6748
|
+
flex-direction: column;
|
|
6749
|
+
flex: 1;
|
|
6750
|
+
min-width: 0;
|
|
6751
|
+
}
|
|
6752
|
+
|
|
6753
|
+
.oc-dropdown__trigger-description {
|
|
6754
|
+
font-size: var(--oc-font-size-xs);
|
|
6755
|
+
color: var(--oc-fg-secondary);
|
|
6756
|
+
line-height: var(--oc-line-height-normal);
|
|
6757
|
+
white-space: nowrap;
|
|
6758
|
+
overflow: hidden;
|
|
6759
|
+
text-overflow: ellipsis;
|
|
6760
|
+
}
|
|
6761
|
+
|
|
6716
6762
|
.oc-dropdown__placeholder {
|
|
6717
6763
|
flex: 1;
|
|
6718
6764
|
white-space: nowrap;
|
|
@@ -6879,6 +6925,7 @@ var dropdownStyles = `
|
|
|
6879
6925
|
display: flex;
|
|
6880
6926
|
align-items: center;
|
|
6881
6927
|
gap: var(--oc-spacing-sm);
|
|
6928
|
+
min-height: 44px;
|
|
6882
6929
|
padding: 10px 14px;
|
|
6883
6930
|
border-bottom: 1px solid var(--oc-border-default);
|
|
6884
6931
|
}
|
|
@@ -6957,6 +7004,7 @@ var dropdownStyles = `
|
|
|
6957
7004
|
display: flex;
|
|
6958
7005
|
align-items: center;
|
|
6959
7006
|
gap: var(--oc-spacing-sm);
|
|
7007
|
+
min-height: 44px;
|
|
6960
7008
|
padding: 10px 14px;
|
|
6961
7009
|
font-size: var(--oc-font-size-sm);
|
|
6962
7010
|
color: var(--oc-fg-primary);
|
|
@@ -7000,13 +7048,13 @@ var dropdownStyles = `
|
|
|
7000
7048
|
}
|
|
7001
7049
|
|
|
7002
7050
|
.oc-dropdown__option-icon svg {
|
|
7003
|
-
width: 16px;
|
|
7004
|
-
height: 16px;
|
|
7051
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
7052
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
7005
7053
|
}
|
|
7006
7054
|
|
|
7007
7055
|
.oc-dropdown__option-icon-img {
|
|
7008
|
-
width: 16px;
|
|
7009
|
-
height: 16px;
|
|
7056
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
7057
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
7010
7058
|
object-fit: contain;
|
|
7011
7059
|
border-radius: 2px;
|
|
7012
7060
|
}
|
|
@@ -7034,6 +7082,12 @@ var dropdownStyles = `
|
|
|
7034
7082
|
text-overflow: ellipsis;
|
|
7035
7083
|
}
|
|
7036
7084
|
|
|
7085
|
+
.oc-dropdown--wrap-descriptions .oc-dropdown__option-description {
|
|
7086
|
+
white-space: normal;
|
|
7087
|
+
overflow: visible;
|
|
7088
|
+
text-overflow: clip;
|
|
7089
|
+
}
|
|
7090
|
+
|
|
7037
7091
|
.oc-dropdown__option--selected .oc-dropdown__option-description {
|
|
7038
7092
|
color: var(--oc-accent);
|
|
7039
7093
|
opacity: 0.7;
|
|
@@ -7053,6 +7107,7 @@ var dropdownStyles = `
|
|
|
7053
7107
|
display: flex;
|
|
7054
7108
|
align-items: center;
|
|
7055
7109
|
gap: var(--oc-spacing-sm);
|
|
7110
|
+
min-height: 44px;
|
|
7056
7111
|
padding: 10px 14px;
|
|
7057
7112
|
font-size: var(--oc-font-size-sm);
|
|
7058
7113
|
color: var(--oc-fg-primary);
|
|
@@ -7087,8 +7142,8 @@ var dropdownStyles = `
|
|
|
7087
7142
|
}
|
|
7088
7143
|
|
|
7089
7144
|
.oc-dropdown__item-icon svg {
|
|
7090
|
-
width: 16px;
|
|
7091
|
-
height: 16px;
|
|
7145
|
+
width: var(--oc-dropdown-icon-size, 16px);
|
|
7146
|
+
height: var(--oc-dropdown-icon-size, 16px);
|
|
7092
7147
|
}
|
|
7093
7148
|
|
|
7094
7149
|
.oc-dropdown__item-label {
|
|
@@ -7146,8 +7201,13 @@ var dropdownStyles = `
|
|
|
7146
7201
|
/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
7147
7202
|
|
|
7148
7203
|
@media (max-width: 600px) {
|
|
7204
|
+
/* 16px minimum prevents iOS Safari auto-zoom on focus */
|
|
7149
7205
|
.oc-dropdown__trigger {
|
|
7150
|
-
|
|
7206
|
+
font-size: 16px;
|
|
7207
|
+
}
|
|
7208
|
+
|
|
7209
|
+
.oc-dropdown__search-input {
|
|
7210
|
+
font-size: 16px;
|
|
7151
7211
|
}
|
|
7152
7212
|
|
|
7153
7213
|
.oc-dropdown--fluid .oc-dropdown__menu {
|
|
@@ -7155,6 +7215,18 @@ var dropdownStyles = `
|
|
|
7155
7215
|
right: 0;
|
|
7156
7216
|
}
|
|
7157
7217
|
}
|
|
7218
|
+
|
|
7219
|
+
/* \u2500\u2500\u2500 Coarse pointer (touch) feedback \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
7220
|
+
|
|
7221
|
+
@media (pointer: coarse) {
|
|
7222
|
+
.oc-dropdown__option:active:not(.oc-dropdown__option--disabled) {
|
|
7223
|
+
background: rgba(15, 118, 110, 0.12);
|
|
7224
|
+
}
|
|
7225
|
+
|
|
7226
|
+
.oc-dropdown__item:active:not(.oc-dropdown__item--disabled) {
|
|
7227
|
+
background: rgba(15, 118, 110, 0.12);
|
|
7228
|
+
}
|
|
7229
|
+
}
|
|
7158
7230
|
`;
|
|
7159
7231
|
|
|
7160
7232
|
// src/Checkbox/Checkbox.tsx
|
|
@@ -18399,7 +18471,7 @@ var dataGridStyles = `
|
|
|
18399
18471
|
// src/Node/Node.tsx
|
|
18400
18472
|
import { forwardRef as forwardRef52 } from "react";
|
|
18401
18473
|
import { jsx as jsx52, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
18402
|
-
var
|
|
18474
|
+
var Node2 = forwardRef52(
|
|
18403
18475
|
({
|
|
18404
18476
|
size = "sm",
|
|
18405
18477
|
variant = "default",
|
|
@@ -18424,7 +18496,7 @@ var Node = forwardRef52(
|
|
|
18424
18496
|
] });
|
|
18425
18497
|
}
|
|
18426
18498
|
);
|
|
18427
|
-
|
|
18499
|
+
Node2.displayName = "Node";
|
|
18428
18500
|
|
|
18429
18501
|
// src/Node/Node.styles.ts
|
|
18430
18502
|
var nodeStyles = `
|
|
@@ -18786,7 +18858,7 @@ var RelationshipBadge = forwardRef54(
|
|
|
18786
18858
|
...props,
|
|
18787
18859
|
children: [
|
|
18788
18860
|
/* @__PURE__ */ jsx54(
|
|
18789
|
-
|
|
18861
|
+
Node2,
|
|
18790
18862
|
{
|
|
18791
18863
|
size: size === "sm" ? "xs" : "sm",
|
|
18792
18864
|
variant: active ? "active" : "muted",
|
|
@@ -18927,7 +18999,7 @@ var RelationshipPill = forwardRef55(
|
|
|
18927
18999
|
...props,
|
|
18928
19000
|
children: [
|
|
18929
19001
|
/* @__PURE__ */ jsx55(
|
|
18930
|
-
|
|
19002
|
+
Node2,
|
|
18931
19003
|
{
|
|
18932
19004
|
size: "xs",
|
|
18933
19005
|
variant: active ? "active" : "default"
|
|
@@ -20630,7 +20702,7 @@ export {
|
|
|
20630
20702
|
ModalHeader,
|
|
20631
20703
|
NavBar,
|
|
20632
20704
|
NewDiscussionButton,
|
|
20633
|
-
Node,
|
|
20705
|
+
Node2 as Node,
|
|
20634
20706
|
PageHeader,
|
|
20635
20707
|
Pane,
|
|
20636
20708
|
PanelAction,
|