@j2-health/design-system 0.5.4 → 0.6.0
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.cjs +15 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.js +9 -2
- package/dist/index2.js +9 -2
- package/dist/src/components/alert/Alert.cjs +4 -2
- package/dist/src/components/alert/Alert.cjs.map +1 -1
- package/dist/src/components/alert/Alert.d.ts +2 -2
- package/dist/src/components/alert/Alert.js +3 -2
- package/dist/src/components/alert/Alert.js.map +1 -1
- package/dist/src/components/button/Button.cjs +7 -2
- package/dist/src/components/button/Button.cjs.map +1 -1
- package/dist/src/components/button/Button.d.ts +10 -2
- package/dist/src/components/button/Button.js +5 -2
- package/dist/src/components/button/Button.js.map +1 -1
- package/dist/src/components/card/Card.cjs +16 -2
- package/dist/src/components/card/Card.cjs.map +1 -1
- package/dist/src/components/card/Card.d.ts +7 -1
- package/dist/src/components/card/Card.js +16 -2
- package/dist/src/components/card/Card.js.map +1 -1
- package/dist/src/components/changeChip/ChangeChip.cjs +52 -0
- package/dist/src/components/changeChip/ChangeChip.cjs.map +1 -0
- package/dist/src/components/changeChip/ChangeChip.d.ts +40 -0
- package/dist/src/components/changeChip/ChangeChip.js +49 -0
- package/dist/src/components/changeChip/ChangeChip.js.map +1 -0
- package/dist/src/components/changeChip/index.d.ts +1 -0
- package/dist/src/components/collapse/Collapse.cjs +9 -2
- package/dist/src/components/collapse/Collapse.cjs.map +1 -1
- package/dist/src/components/collapse/Collapse.d.ts +7 -1
- package/dist/src/components/collapse/Collapse.js +9 -2
- package/dist/src/components/collapse/Collapse.js.map +1 -1
- package/dist/src/components/collapse/Collapse.module.css.cjs +7 -4
- package/dist/src/components/collapse/Collapse.module.css.cjs.map +1 -1
- package/dist/src/components/collapse/Collapse.module.css.js +7 -5
- package/dist/src/components/collapse/Collapse.module.css.js.map +1 -1
- package/dist/src/components/dropdown/Dropdown.cjs +6 -1
- package/dist/src/components/dropdown/Dropdown.cjs.map +1 -1
- package/dist/src/components/dropdown/Dropdown.d.ts +8 -1
- package/dist/src/components/dropdown/Dropdown.js +6 -1
- package/dist/src/components/dropdown/Dropdown.js.map +1 -1
- package/dist/src/components/emptyState/EmptyState.cjs +39 -0
- package/dist/src/components/emptyState/EmptyState.cjs.map +1 -0
- package/dist/src/components/emptyState/EmptyState.d.ts +20 -0
- package/dist/src/components/emptyState/EmptyState.js +37 -0
- package/dist/src/components/emptyState/EmptyState.js.map +1 -0
- package/dist/src/components/emptyState/index.d.ts +1 -0
- package/dist/src/components/input/AntdInput.d.ts +1 -1
- package/dist/src/components/input/AntdSearchInput.d.ts +1 -1
- package/dist/src/components/listRow/ListRow.cjs +65 -0
- package/dist/src/components/listRow/ListRow.cjs.map +1 -0
- package/dist/src/components/listRow/ListRow.d.ts +41 -0
- package/dist/src/components/listRow/ListRow.js +63 -0
- package/dist/src/components/listRow/ListRow.js.map +1 -0
- package/dist/src/components/listRow/index.d.ts +1 -0
- package/dist/src/components/modal/Modal.cjs +9 -3
- package/dist/src/components/modal/Modal.cjs.map +1 -1
- package/dist/src/components/modal/Modal.d.ts +3 -1
- package/dist/src/components/modal/Modal.js +10 -4
- package/dist/src/components/modal/Modal.js.map +1 -1
- package/dist/src/components/navMenu/NavMenu.cjs +2 -2
- package/dist/src/components/navMenu/NavMenu.cjs.map +1 -1
- package/dist/src/components/navMenu/NavMenu.d.ts +3 -1
- package/dist/src/components/navMenu/NavMenu.js +2 -2
- package/dist/src/components/navMenu/NavMenu.js.map +1 -1
- package/dist/src/components/popover/Popover.cjs.map +1 -1
- package/dist/src/components/popover/Popover.d.ts +1 -1
- package/dist/src/components/popover/Popover.js.map +1 -1
- package/dist/src/components/popover/Popover.module.css.cjs +12 -9
- package/dist/src/components/popover/Popover.module.css.cjs.map +1 -1
- package/dist/src/components/popover/Popover.module.css.js +12 -10
- package/dist/src/components/popover/Popover.module.css.js.map +1 -1
- package/dist/src/components/select/SummarizedSelect.cjs +16 -12
- package/dist/src/components/select/SummarizedSelect.cjs.map +1 -1
- package/dist/src/components/select/SummarizedSelect.d.ts +15 -3
- package/dist/src/components/select/SummarizedSelect.js +16 -12
- package/dist/src/components/select/SummarizedSelect.js.map +1 -1
- package/dist/src/components/select/SummarizedSelect.module.css.cjs +15 -9
- package/dist/src/components/select/SummarizedSelect.module.css.cjs.map +1 -1
- package/dist/src/components/select/SummarizedSelect.module.css.js +14 -10
- package/dist/src/components/select/SummarizedSelect.module.css.js.map +1 -1
- package/dist/src/components/statusPill/StatusPill.cjs +47 -0
- package/dist/src/components/statusPill/StatusPill.cjs.map +1 -0
- package/dist/src/components/statusPill/StatusPill.d.ts +28 -0
- package/dist/src/components/statusPill/StatusPill.js +45 -0
- package/dist/src/components/statusPill/StatusPill.js.map +1 -0
- package/dist/src/components/statusPill/StatusPill.module.css.cjs +20 -0
- package/dist/src/components/statusPill/StatusPill.module.css.cjs.map +1 -0
- package/dist/src/components/statusPill/StatusPill.module.css.js +16 -0
- package/dist/src/components/statusPill/StatusPill.module.css.js.map +1 -0
- package/dist/src/components/statusPill/index.d.ts +1 -0
- package/dist/src/components/swatch/Swatch.cjs +50 -0
- package/dist/src/components/swatch/Swatch.cjs.map +1 -0
- package/dist/src/components/swatch/Swatch.d.ts +24 -0
- package/dist/src/components/swatch/Swatch.js +48 -0
- package/dist/src/components/swatch/Swatch.js.map +1 -0
- package/dist/src/components/swatch/index.d.ts +1 -0
- package/dist/src/components/swatchStrip/SwatchStrip.cjs +50 -0
- package/dist/src/components/swatchStrip/SwatchStrip.cjs.map +1 -0
- package/dist/src/components/swatchStrip/SwatchStrip.d.ts +25 -0
- package/dist/src/components/swatchStrip/SwatchStrip.js +50 -0
- package/dist/src/components/swatchStrip/SwatchStrip.js.map +1 -0
- package/dist/src/components/swatchStrip/index.d.ts +1 -0
- package/dist/src/components/switch/Switch.cjs +7 -3
- package/dist/src/components/switch/Switch.cjs.map +1 -1
- package/dist/src/components/switch/Switch.d.ts +1 -1
- package/dist/src/components/switch/Switch.js +5 -3
- package/dist/src/components/switch/Switch.js.map +1 -1
- package/dist/src/components/tabs/Tabs.cjs +6 -1
- package/dist/src/components/tabs/Tabs.cjs.map +1 -1
- package/dist/src/components/tabs/Tabs.d.ts +10 -2
- package/dist/src/components/tabs/Tabs.js +4 -1
- package/dist/src/components/tabs/Tabs.js.map +1 -1
- package/dist/src/components/tabs/Tabs.module.css.cjs +13 -0
- package/dist/src/components/tabs/Tabs.module.css.cjs.map +1 -0
- package/dist/src/components/tabs/Tabs.module.css.js +11 -0
- package/dist/src/components/tabs/Tabs.module.css.js.map +1 -0
- package/dist/src/components/tag/Tag.cjs +13 -6
- package/dist/src/components/tag/Tag.cjs.map +1 -1
- package/dist/src/components/tag/Tag.d.ts +13 -2
- package/dist/src/components/tag/Tag.js +13 -6
- package/dist/src/components/tag/Tag.js.map +1 -1
- package/dist/src/components/thresholdBar/ThresholdBar.cjs +128 -0
- package/dist/src/components/thresholdBar/ThresholdBar.cjs.map +1 -0
- package/dist/src/components/thresholdBar/ThresholdBar.d.ts +36 -0
- package/dist/src/components/thresholdBar/ThresholdBar.js +125 -0
- package/dist/src/components/thresholdBar/ThresholdBar.js.map +1 -0
- package/dist/src/components/thresholdBar/ThresholdBar.module.css.cjs +19 -0
- package/dist/src/components/thresholdBar/ThresholdBar.module.css.cjs.map +1 -0
- package/dist/src/components/thresholdBar/ThresholdBar.module.css.js +15 -0
- package/dist/src/components/thresholdBar/ThresholdBar.module.css.js.map +1 -0
- package/dist/src/components/thresholdBar/index.d.ts +1 -0
- package/dist/src/index.d.ts +0 -13
- package/dist/style.css +346 -41
- package/dist/tailwind.cjs +56 -0
- package/dist/tailwind.cjs.map +1 -1
- package/dist/tailwind.config.d.ts +112 -0
- package/dist/tailwind.js +56 -0
- package/dist/tailwind.js.map +1 -1
- package/package.json +2 -2
- package/src/stylesheets/Colors.stories.tsx +163 -0
- package/src/stylesheets/base.css +110 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListRow.cjs","names":["cx","Checkbox","Radio"],"sources":["../../../../src/components/listRow/ListRow.tsx"],"sourcesContent":["import cx from 'classnames'\n\nimport { Checkbox } from '../checkbox'\nimport { Radio } from '../radio'\n\ntype SelectionProps =\n | {\n /**\n * A leading control bound to `selected`: `'checkbox'` for picking\n * several rows, `'radio'` for picking one. Using it doesn't trigger\n * `onClick`, so a row can open a record and be selected separately.\n */\n selection: 'checkbox' | 'radio'\n /** Called when the selection control changes. */\n onSelectedChange?: (selected: boolean) => void\n /** Accessible name for the selection control, e.g. the row's title. */\n selectionLabel: string\n }\n | {\n selection?: undefined\n onSelectedChange?: undefined\n selectionLabel?: undefined\n }\n\nexport type ListRowProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onClick'\n> &\n SelectionProps & {\n /** The row is part of the current selection. */\n selected?: boolean\n /**\n * The row carries a change that has not been applied yet. Wins over\n * `selected`, so a pending row reads the same whether or not it is selected.\n */\n pending?: boolean\n /**\n * Light the row as if hovered. For hover driven from elsewhere, e.g. the\n * matching marker on a map; the row's own `:hover` works without it.\n */\n highlighted?: boolean\n /** Makes the row a button: focusable, and Enter or Space activates it. */\n onClick?: () => void\n /** Called with `true` on pointer enter and `false` on leave. */\n onHoverChange?: (hovered: boolean) => void\n }\n\n/**\n * A row in a list of records, with hover, selected and pending states.\n * Precedence: pending, then selected, then hover. A selected row keeps its\n * own fill under the cursor rather than stacking a hover tint on top.\n */\nexport const ListRow = ({\n selected = false,\n pending = false,\n highlighted = false,\n onClick,\n onHoverChange,\n selection,\n onSelectedChange,\n selectionLabel,\n className,\n children,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n ...props\n}: ListRowProps) => {\n const resting = !pending && !selected\n\n return (\n <div\n {...props}\n data-selected={selected || undefined}\n data-pending={pending || undefined}\n role={onClick ? 'button' : props.role}\n tabIndex={onClick ? 0 : props.tabIndex}\n aria-pressed={onClick && !selection ? selected : undefined}\n onClick={onClick}\n onKeyDown={(event) => {\n onKeyDown?.(event)\n if (!onClick || event.defaultPrevented) return\n if (event.target !== event.currentTarget) return\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n onClick()\n }\n }}\n onMouseEnter={(event) => {\n onMouseEnter?.(event)\n onHoverChange?.(true)\n }}\n onMouseLeave={(event) => {\n onMouseLeave?.(event)\n onHoverChange?.(false)\n }}\n className={cx(\n 'border-b border-j2-gray-3 px-4 py-3 transition-colors',\n onClick && 'cursor-pointer',\n pending && 'bg-[var(--j2-color-warning-bg)]',\n !pending && selected && 'bg-[var(--j2-color-primary-bg-hover)]',\n resting && (highlighted ? 'bg-j2-gray-3' : 'hover:bg-j2-gray-3'),\n className\n )}\n >\n {selection ? (\n <div className=\"flex items-start gap-2\">\n <span\n className=\"flex shrink-0 pt-0.5\"\n onClick={(event) => event.stopPropagation()}\n >\n {selection === 'checkbox' ? (\n <Checkbox\n checked={selected}\n aria-label={selectionLabel}\n onChange={(event) => onSelectedChange?.(event.target.checked)}\n />\n ) : (\n <Radio\n checked={selected}\n aria-label={selectionLabel}\n onChange={() => onSelectedChange?.(true)}\n />\n )}\n </span>\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n ) : (\n children\n )}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAoDA,IAAa,WAAW,EACtB,WAAW,OACX,UAAU,OACV,cAAc,OACd,SACA,eACA,WACA,kBACA,gBACA,WACA,UACA,WACA,cACA,cACA,GAAG,YACe;CAClB,MAAM,UAAU,CAAC,WAAW,CAAC;CAE7B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,GAAI;EACJ,iBAAe,YAAY,KAAA;EAC3B,gBAAc,WAAW,KAAA;EACzB,MAAM,UAAU,WAAW,MAAM;EACjC,UAAU,UAAU,IAAI,MAAM;EAC9B,gBAAc,WAAW,CAAC,YAAY,WAAW,KAAA;EACxC;EACT,YAAY,UAAU;GACpB,YAAY,KAAK;GACjB,IAAI,CAAC,WAAW,MAAM,kBAAkB;GACxC,IAAI,MAAM,WAAW,MAAM,eAAe;GAC1C,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;IAC9C,MAAM,eAAe;IACrB,QAAQ;GACV;EACF;EACA,eAAe,UAAU;GACvB,eAAe,KAAK;GACpB,gBAAgB,IAAI;EACtB;EACA,eAAe,UAAU;GACvB,eAAe,KAAK;GACpB,gBAAgB,KAAK;EACvB;EACA,YAAA,GAAWA,WAAAA,QAAAA,CACT,yDACA,WAAW,kBACX,WAAW,mCACX,CAAC,WAAW,YAAY,yCACxB,YAAY,cAAc,iBAAiB,uBAC3C,SACF;EAEC,UAAA,YACC,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IACE,WAAU;IACV,UAAU,UAAU,MAAM,gBAAgB;IAEzC,UAAA,cAAc,aACb,iBAAA,GAAA,kBAAA,IAAA,CAACC,iBAAAA,UAAD;KACE,SAAS;KACT,cAAY;KACZ,WAAW,UAAU,mBAAmB,MAAM,OAAO,OAAO;IAC7D,CAAA,IAED,iBAAA,GAAA,kBAAA,IAAA,CAACC,cAAAA,OAAD;KACE,SAAS;KACT,cAAY;KACZ,gBAAgB,mBAAmB,IAAI;IACxC,CAAA;GAEC,CAAA,GACN,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IAAkB;GAAc,CAAA,CAC5C;EAEL,CAAA,IAAA;CAEC,CAAA;AAET"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
type SelectionProps = {
|
|
2
|
+
/**
|
|
3
|
+
* A leading control bound to `selected`: `'checkbox'` for picking
|
|
4
|
+
* several rows, `'radio'` for picking one. Using it doesn't trigger
|
|
5
|
+
* `onClick`, so a row can open a record and be selected separately.
|
|
6
|
+
*/
|
|
7
|
+
selection: 'checkbox' | 'radio';
|
|
8
|
+
/** Called when the selection control changes. */
|
|
9
|
+
onSelectedChange?: (selected: boolean) => void;
|
|
10
|
+
/** Accessible name for the selection control, e.g. the row's title. */
|
|
11
|
+
selectionLabel: string;
|
|
12
|
+
} | {
|
|
13
|
+
selection?: undefined;
|
|
14
|
+
onSelectedChange?: undefined;
|
|
15
|
+
selectionLabel?: undefined;
|
|
16
|
+
};
|
|
17
|
+
export type ListRowProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onClick'> & SelectionProps & {
|
|
18
|
+
/** The row is part of the current selection. */
|
|
19
|
+
selected?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The row carries a change that has not been applied yet. Wins over
|
|
22
|
+
* `selected`, so a pending row reads the same whether or not it is selected.
|
|
23
|
+
*/
|
|
24
|
+
pending?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Light the row as if hovered. For hover driven from elsewhere, e.g. the
|
|
27
|
+
* matching marker on a map; the row's own `:hover` works without it.
|
|
28
|
+
*/
|
|
29
|
+
highlighted?: boolean;
|
|
30
|
+
/** Makes the row a button: focusable, and Enter or Space activates it. */
|
|
31
|
+
onClick?: () => void;
|
|
32
|
+
/** Called with `true` on pointer enter and `false` on leave. */
|
|
33
|
+
onHoverChange?: (hovered: boolean) => void;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* A row in a list of records, with hover, selected and pending states.
|
|
37
|
+
* Precedence: pending, then selected, then hover. A selected row keeps its
|
|
38
|
+
* own fill under the cursor rather than stacking a hover tint on top.
|
|
39
|
+
*/
|
|
40
|
+
export declare const ListRow: ({ selected, pending, highlighted, onClick, onHoverChange, selection, onSelectedChange, selectionLabel, className, children, onKeyDown, onMouseEnter, onMouseLeave, ...props }: ListRowProps) => import('react').JSX.Element;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Checkbox } from "../checkbox/Checkbox.js";
|
|
2
|
+
import { Radio } from "../radio/Radio.js";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import cx from "classnames";
|
|
5
|
+
//#region src/components/listRow/ListRow.tsx
|
|
6
|
+
/**
|
|
7
|
+
* A row in a list of records, with hover, selected and pending states.
|
|
8
|
+
* Precedence: pending, then selected, then hover. A selected row keeps its
|
|
9
|
+
* own fill under the cursor rather than stacking a hover tint on top.
|
|
10
|
+
*/
|
|
11
|
+
var ListRow = ({ selected = false, pending = false, highlighted = false, onClick, onHoverChange, selection, onSelectedChange, selectionLabel, className, children, onKeyDown, onMouseEnter, onMouseLeave, ...props }) => {
|
|
12
|
+
const resting = !pending && !selected;
|
|
13
|
+
return /* @__PURE__ */ jsx("div", {
|
|
14
|
+
...props,
|
|
15
|
+
"data-selected": selected || void 0,
|
|
16
|
+
"data-pending": pending || void 0,
|
|
17
|
+
role: onClick ? "button" : props.role,
|
|
18
|
+
tabIndex: onClick ? 0 : props.tabIndex,
|
|
19
|
+
"aria-pressed": onClick && !selection ? selected : void 0,
|
|
20
|
+
onClick,
|
|
21
|
+
onKeyDown: (event) => {
|
|
22
|
+
onKeyDown?.(event);
|
|
23
|
+
if (!onClick || event.defaultPrevented) return;
|
|
24
|
+
if (event.target !== event.currentTarget) return;
|
|
25
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
onClick();
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
onMouseEnter: (event) => {
|
|
31
|
+
onMouseEnter?.(event);
|
|
32
|
+
onHoverChange?.(true);
|
|
33
|
+
},
|
|
34
|
+
onMouseLeave: (event) => {
|
|
35
|
+
onMouseLeave?.(event);
|
|
36
|
+
onHoverChange?.(false);
|
|
37
|
+
},
|
|
38
|
+
className: cx("border-b border-j2-gray-3 px-4 py-3 transition-colors", onClick && "cursor-pointer", pending && "bg-[var(--j2-color-warning-bg)]", !pending && selected && "bg-[var(--j2-color-primary-bg-hover)]", resting && (highlighted ? "bg-j2-gray-3" : "hover:bg-j2-gray-3"), className),
|
|
39
|
+
children: selection ? /* @__PURE__ */ jsxs("div", {
|
|
40
|
+
className: "flex items-start gap-2",
|
|
41
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
42
|
+
className: "flex shrink-0 pt-0.5",
|
|
43
|
+
onClick: (event) => event.stopPropagation(),
|
|
44
|
+
children: selection === "checkbox" ? /* @__PURE__ */ jsx(Checkbox, {
|
|
45
|
+
checked: selected,
|
|
46
|
+
"aria-label": selectionLabel,
|
|
47
|
+
onChange: (event) => onSelectedChange?.(event.target.checked)
|
|
48
|
+
}) : /* @__PURE__ */ jsx(Radio, {
|
|
49
|
+
checked: selected,
|
|
50
|
+
"aria-label": selectionLabel,
|
|
51
|
+
onChange: () => onSelectedChange?.(true)
|
|
52
|
+
})
|
|
53
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
54
|
+
className: "min-w-0 flex-1",
|
|
55
|
+
children
|
|
56
|
+
})]
|
|
57
|
+
}) : children
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
export { ListRow };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=ListRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListRow.js","names":[],"sources":["../../../../src/components/listRow/ListRow.tsx"],"sourcesContent":["import cx from 'classnames'\n\nimport { Checkbox } from '../checkbox'\nimport { Radio } from '../radio'\n\ntype SelectionProps =\n | {\n /**\n * A leading control bound to `selected`: `'checkbox'` for picking\n * several rows, `'radio'` for picking one. Using it doesn't trigger\n * `onClick`, so a row can open a record and be selected separately.\n */\n selection: 'checkbox' | 'radio'\n /** Called when the selection control changes. */\n onSelectedChange?: (selected: boolean) => void\n /** Accessible name for the selection control, e.g. the row's title. */\n selectionLabel: string\n }\n | {\n selection?: undefined\n onSelectedChange?: undefined\n selectionLabel?: undefined\n }\n\nexport type ListRowProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onClick'\n> &\n SelectionProps & {\n /** The row is part of the current selection. */\n selected?: boolean\n /**\n * The row carries a change that has not been applied yet. Wins over\n * `selected`, so a pending row reads the same whether or not it is selected.\n */\n pending?: boolean\n /**\n * Light the row as if hovered. For hover driven from elsewhere, e.g. the\n * matching marker on a map; the row's own `:hover` works without it.\n */\n highlighted?: boolean\n /** Makes the row a button: focusable, and Enter or Space activates it. */\n onClick?: () => void\n /** Called with `true` on pointer enter and `false` on leave. */\n onHoverChange?: (hovered: boolean) => void\n }\n\n/**\n * A row in a list of records, with hover, selected and pending states.\n * Precedence: pending, then selected, then hover. A selected row keeps its\n * own fill under the cursor rather than stacking a hover tint on top.\n */\nexport const ListRow = ({\n selected = false,\n pending = false,\n highlighted = false,\n onClick,\n onHoverChange,\n selection,\n onSelectedChange,\n selectionLabel,\n className,\n children,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n ...props\n}: ListRowProps) => {\n const resting = !pending && !selected\n\n return (\n <div\n {...props}\n data-selected={selected || undefined}\n data-pending={pending || undefined}\n role={onClick ? 'button' : props.role}\n tabIndex={onClick ? 0 : props.tabIndex}\n aria-pressed={onClick && !selection ? selected : undefined}\n onClick={onClick}\n onKeyDown={(event) => {\n onKeyDown?.(event)\n if (!onClick || event.defaultPrevented) return\n if (event.target !== event.currentTarget) return\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n onClick()\n }\n }}\n onMouseEnter={(event) => {\n onMouseEnter?.(event)\n onHoverChange?.(true)\n }}\n onMouseLeave={(event) => {\n onMouseLeave?.(event)\n onHoverChange?.(false)\n }}\n className={cx(\n 'border-b border-j2-gray-3 px-4 py-3 transition-colors',\n onClick && 'cursor-pointer',\n pending && 'bg-[var(--j2-color-warning-bg)]',\n !pending && selected && 'bg-[var(--j2-color-primary-bg-hover)]',\n resting && (highlighted ? 'bg-j2-gray-3' : 'hover:bg-j2-gray-3'),\n className\n )}\n >\n {selection ? (\n <div className=\"flex items-start gap-2\">\n <span\n className=\"flex shrink-0 pt-0.5\"\n onClick={(event) => event.stopPropagation()}\n >\n {selection === 'checkbox' ? (\n <Checkbox\n checked={selected}\n aria-label={selectionLabel}\n onChange={(event) => onSelectedChange?.(event.target.checked)}\n />\n ) : (\n <Radio\n checked={selected}\n aria-label={selectionLabel}\n onChange={() => onSelectedChange?.(true)}\n />\n )}\n </span>\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n ) : (\n children\n )}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;AAoDA,IAAa,WAAW,EACtB,WAAW,OACX,UAAU,OACV,cAAc,OACd,SACA,eACA,WACA,kBACA,gBACA,WACA,UACA,WACA,cACA,cACA,GAAG,YACe;CAClB,MAAM,UAAU,CAAC,WAAW,CAAC;CAE7B,OACE,oBAAC,OAAD;EACE,GAAI;EACJ,iBAAe,YAAY,KAAA;EAC3B,gBAAc,WAAW,KAAA;EACzB,MAAM,UAAU,WAAW,MAAM;EACjC,UAAU,UAAU,IAAI,MAAM;EAC9B,gBAAc,WAAW,CAAC,YAAY,WAAW,KAAA;EACxC;EACT,YAAY,UAAU;GACpB,YAAY,KAAK;GACjB,IAAI,CAAC,WAAW,MAAM,kBAAkB;GACxC,IAAI,MAAM,WAAW,MAAM,eAAe;GAC1C,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;IAC9C,MAAM,eAAe;IACrB,QAAQ;GACV;EACF;EACA,eAAe,UAAU;GACvB,eAAe,KAAK;GACpB,gBAAgB,IAAI;EACtB;EACA,eAAe,UAAU;GACvB,eAAe,KAAK;GACpB,gBAAgB,KAAK;EACvB;EACA,WAAW,GACT,yDACA,WAAW,kBACX,WAAW,mCACX,CAAC,WAAW,YAAY,yCACxB,YAAY,cAAc,iBAAiB,uBAC3C,SACF;EAEC,UAAA,YACC,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,QAAD;IACE,WAAU;IACV,UAAU,UAAU,MAAM,gBAAgB;IAEzC,UAAA,cAAc,aACb,oBAAC,UAAD;KACE,SAAS;KACT,cAAY;KACZ,WAAW,UAAU,mBAAmB,MAAM,OAAO,OAAO;IAC7D,CAAA,IAED,oBAAC,OAAD;KACE,SAAS;KACT,cAAY;KACZ,gBAAgB,mBAAmB,IAAI;IACxC,CAAA;GAEC,CAAA,GACN,oBAAC,OAAD;IAAK,WAAU;IAAkB;GAAc,CAAA,CAC5C;EAEL,CAAA,IAAA;CAEC,CAAA;AAET"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ListRow, type ListRowProps } from './ListRow.js';
|
|
@@ -7,10 +7,16 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
7
7
|
let classnames = require("classnames");
|
|
8
8
|
classnames = require_runtime.__toESM(classnames, 1);
|
|
9
9
|
//#region src/components/modal/Modal.tsx
|
|
10
|
-
var Modal = ({ open, title, children, onCancel, withContentPadding: withPadding = true, ...props }) => {
|
|
10
|
+
var Modal = ({ open, title, children, onCancel, withContentPadding: withPadding = true, subtitle, className, ...props }) => {
|
|
11
11
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Modal, {
|
|
12
|
-
title,
|
|
13
|
-
|
|
12
|
+
title: subtitle ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13
|
+
className: "flex flex-col gap-1",
|
|
14
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: title }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
15
|
+
className: "text-sm font-normal text-j2-text-secondary",
|
|
16
|
+
children: subtitle
|
|
17
|
+
})]
|
|
18
|
+
}) : title,
|
|
19
|
+
className: (0, classnames.default)("j2-modal", className),
|
|
14
20
|
centered: true,
|
|
15
21
|
closeIcon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_phosphor_icons_react.XIcon, {
|
|
16
22
|
size: 22,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.cjs","names":["AntdModal","cx","XIcon"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import { Modal as AntdModal, ModalProps } from 'antd'\nimport { XIcon } from '@phosphor-icons/react'\nimport './Modal.css'\nimport cx from 'classnames'\n\nexport type Props = {\n withContentPadding?: boolean\n} & Expand<ModalProps>\n\nconst Modal = ({\n open,\n title,\n children,\n onCancel,\n withContentPadding: withPadding = true,\n ...props\n}: Props) => {\n return (\n <AntdModal\n title={title}\n className={cx('j2-modal')}\n centered\n closeIcon={<XIcon size={22} weight=\"regular\" />}\n onCancel={onCancel}\n open={open}\n {...props}\n >\n <div className={cx(withPadding ? 'px-6 py-3' : 'px-0 py-0')}>\n {children}\n </div>\n </AntdModal>\n )\n}\n\nexport { Modal }\n"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Modal.cjs","names":["AntdModal","cx","XIcon"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import { Modal as AntdModal, ModalProps } from 'antd'\nimport { XIcon } from '@phosphor-icons/react'\nimport './Modal.css'\nimport cx from 'classnames'\n\nexport type Props = {\n withContentPadding?: boolean\n /** A line of supporting text under the title. */\n subtitle?: React.ReactNode\n} & Expand<ModalProps>\n\nconst Modal = ({\n open,\n title,\n children,\n onCancel,\n withContentPadding: withPadding = true,\n subtitle,\n className,\n ...props\n}: Props) => {\n return (\n <AntdModal\n title={\n subtitle ? (\n <div className=\"flex flex-col gap-1\">\n <span>{title}</span>\n <span className=\"text-sm font-normal text-j2-text-secondary\">\n {subtitle}\n </span>\n </div>\n ) : (\n title\n )\n }\n className={cx('j2-modal', className)}\n centered\n closeIcon={<XIcon size={22} weight=\"regular\" />}\n onCancel={onCancel}\n open={open}\n {...props}\n >\n <div className={cx(withPadding ? 'px-6 py-3' : 'px-0 py-0')}>\n {children}\n </div>\n </AntdModal>\n )\n}\n\nexport { Modal }\n"],"mappings":";;;;;;;;;AAWA,IAAM,SAAS,EACb,MACA,OACA,UACA,UACA,oBAAoB,cAAc,MAClC,UACA,WACA,GAAG,YACQ;CACX,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,KAAAA,OAAD;EACE,OACE,WACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAO,MAAY,CAAA,GACnB,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IAAM,WAAU;IACb,UAAA;GACG,CAAA,CACH;EAEL,CAAA,IAAA;EAGJ,YAAA,GAAWC,WAAAA,QAAAA,CAAG,YAAY,SAAS;EACnC,UAAA;EACA,WAAW,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,OAAD;GAAO,MAAM;GAAI,QAAO;EAAW,CAAA;EACpC;EACJ;EACN,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GAAK,YAAA,GAAWD,WAAAA,QAAAA,CAAG,cAAc,cAAc,WAAW;GACvD;EACE,CAAA;CACI,CAAA;AAEf"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ModalProps } from 'antd';
|
|
2
2
|
export type Props = {
|
|
3
3
|
withContentPadding?: boolean;
|
|
4
|
+
/** A line of supporting text under the title. */
|
|
5
|
+
subtitle?: React.ReactNode;
|
|
4
6
|
} & Expand<ModalProps>;
|
|
5
|
-
declare const Modal: ({ open, title, children, onCancel, withContentPadding: withPadding, ...props }: Props) => import('react').JSX.Element;
|
|
7
|
+
declare const Modal: ({ open, title, children, onCancel, withContentPadding: withPadding, subtitle, className, ...props }: Props) => import('react').JSX.Element;
|
|
6
8
|
export { Modal };
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
/* empty css */
|
|
2
2
|
import { Modal } from "antd";
|
|
3
3
|
import { XIcon } from "@phosphor-icons/react";
|
|
4
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import cx from "classnames";
|
|
6
6
|
//#region src/components/modal/Modal.tsx
|
|
7
|
-
var Modal$1 = ({ open, title, children, onCancel, withContentPadding: withPadding = true, ...props }) => {
|
|
7
|
+
var Modal$1 = ({ open, title, children, onCancel, withContentPadding: withPadding = true, subtitle, className, ...props }) => {
|
|
8
8
|
return /* @__PURE__ */ jsx(Modal, {
|
|
9
|
-
title,
|
|
10
|
-
|
|
9
|
+
title: subtitle ? /* @__PURE__ */ jsxs("div", {
|
|
10
|
+
className: "flex flex-col gap-1",
|
|
11
|
+
children: [/* @__PURE__ */ jsx("span", { children: title }), /* @__PURE__ */ jsx("span", {
|
|
12
|
+
className: "text-sm font-normal text-j2-text-secondary",
|
|
13
|
+
children: subtitle
|
|
14
|
+
})]
|
|
15
|
+
}) : title,
|
|
16
|
+
className: cx("j2-modal", className),
|
|
11
17
|
centered: true,
|
|
12
18
|
closeIcon: /* @__PURE__ */ jsx(XIcon, {
|
|
13
19
|
size: 22,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["Modal","AntdModal"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import { Modal as AntdModal, ModalProps } from 'antd'\nimport { XIcon } from '@phosphor-icons/react'\nimport './Modal.css'\nimport cx from 'classnames'\n\nexport type Props = {\n withContentPadding?: boolean\n} & Expand<ModalProps>\n\nconst Modal = ({\n open,\n title,\n children,\n onCancel,\n withContentPadding: withPadding = true,\n ...props\n}: Props) => {\n return (\n <AntdModal\n title={title}\n className={cx('j2-modal')}\n centered\n closeIcon={<XIcon size={22} weight=\"regular\" />}\n onCancel={onCancel}\n open={open}\n {...props}\n >\n <div className={cx(withPadding ? 'px-6 py-3' : 'px-0 py-0')}>\n {children}\n </div>\n </AntdModal>\n )\n}\n\nexport { Modal }\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["Modal","AntdModal"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import { Modal as AntdModal, ModalProps } from 'antd'\nimport { XIcon } from '@phosphor-icons/react'\nimport './Modal.css'\nimport cx from 'classnames'\n\nexport type Props = {\n withContentPadding?: boolean\n /** A line of supporting text under the title. */\n subtitle?: React.ReactNode\n} & Expand<ModalProps>\n\nconst Modal = ({\n open,\n title,\n children,\n onCancel,\n withContentPadding: withPadding = true,\n subtitle,\n className,\n ...props\n}: Props) => {\n return (\n <AntdModal\n title={\n subtitle ? (\n <div className=\"flex flex-col gap-1\">\n <span>{title}</span>\n <span className=\"text-sm font-normal text-j2-text-secondary\">\n {subtitle}\n </span>\n </div>\n ) : (\n title\n )\n }\n className={cx('j2-modal', className)}\n centered\n closeIcon={<XIcon size={22} weight=\"regular\" />}\n onCancel={onCancel}\n open={open}\n {...props}\n >\n <div className={cx(withPadding ? 'px-6 py-3' : 'px-0 py-0')}>\n {children}\n </div>\n </AntdModal>\n )\n}\n\nexport { Modal }\n"],"mappings":";;;;;;AAWA,IAAMA,WAAS,EACb,MACA,OACA,UACA,UACA,oBAAoB,cAAc,MAClC,UACA,WACA,GAAG,YACQ;CACX,OACE,oBAACC,OAAD;EACE,OACE,WACE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,QAAD,EAAA,UAAO,MAAY,CAAA,GACnB,oBAAC,QAAD;IAAM,WAAU;IACb,UAAA;GACG,CAAA,CACH;EAEL,CAAA,IAAA;EAGJ,WAAW,GAAG,YAAY,SAAS;EACnC,UAAA;EACA,WAAW,oBAAC,OAAD;GAAO,MAAM;GAAI,QAAO;EAAW,CAAA;EACpC;EACJ;EACN,GAAI;EAEJ,UAAA,oBAAC,OAAD;GAAK,WAAW,GAAG,cAAc,cAAc,WAAW;GACvD;EACE,CAAA;CACI,CAAA;AAEf"}
|
|
@@ -14,8 +14,8 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
14
14
|
let classnames = require("classnames");
|
|
15
15
|
classnames = require_runtime.__toESM(classnames, 1);
|
|
16
16
|
//#region src/components/navMenu/NavMenu.tsx
|
|
17
|
-
var NavMenu = ({ href = "/", items, headerSlot, defaultOpenKeys, defaultSelectedKeys, footerItems, className, onCollapse }) => {
|
|
18
|
-
const [isCollapsed, setIsCollapsed] = react$1.useState(
|
|
17
|
+
var NavMenu = ({ href = "/", items, headerSlot, defaultOpenKeys, defaultSelectedKeys, footerItems, className, onCollapse, defaultCollapsed = false }) => {
|
|
18
|
+
const [isCollapsed, setIsCollapsed] = react$1.useState(defaultCollapsed);
|
|
19
19
|
const [isToggleTooltipOpen, setToggleTooltipOpen] = react$1.useState(false);
|
|
20
20
|
const toggleCollapse = react$1.useCallback(() => {
|
|
21
21
|
setIsCollapsed(!isCollapsed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenu.cjs","names":["React","cx","styles","SmallLogo","LogoWithText","Tooltip","Button","ExpandIcon","CollapseIcon","Menu"],"sources":["../../../../src/components/navMenu/NavMenu.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ItemType } from 'antd/es/menu/interface'\nimport cx from 'classnames'\nimport { Menu } from '../menu'\n\nimport SmallLogo from '../../svgs/j2-logo-menu-collapse.svg'\nimport LogoWithText from '../../svgs/j2-logo-menu.svg'\nimport ExpandIcon from '../../svgs/menu-sidebar-expand.svg'\nimport CollapseIcon from '../../svgs/menu-sidebar-collapse.svg'\nimport { Button } from '../button'\n\nimport styles from './NavMenu.module.css'\nimport { Tooltip } from '../tooltip'\n\ntype Props = {\n href?: string\n items: ItemType[]\n headerSlot?: React.ReactNode\n defaultOpenKeys?: string[]\n defaultSelectedKeys?: string[]\n footerItems: ItemType[]\n className?: string\n onCollapse?: (isCollapsed: boolean) => void\n}\n\nexport const NavMenu = ({\n href = '/',\n items,\n headerSlot,\n defaultOpenKeys,\n defaultSelectedKeys,\n footerItems,\n className,\n onCollapse,\n}: Props) => {\n const [isCollapsed, setIsCollapsed] = React.useState(
|
|
1
|
+
{"version":3,"file":"NavMenu.cjs","names":["React","cx","styles","SmallLogo","LogoWithText","Tooltip","Button","ExpandIcon","CollapseIcon","Menu"],"sources":["../../../../src/components/navMenu/NavMenu.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ItemType } from 'antd/es/menu/interface'\nimport cx from 'classnames'\nimport { Menu } from '../menu'\n\nimport SmallLogo from '../../svgs/j2-logo-menu-collapse.svg'\nimport LogoWithText from '../../svgs/j2-logo-menu.svg'\nimport ExpandIcon from '../../svgs/menu-sidebar-expand.svg'\nimport CollapseIcon from '../../svgs/menu-sidebar-collapse.svg'\nimport { Button } from '../button'\n\nimport styles from './NavMenu.module.css'\nimport { Tooltip } from '../tooltip'\n\ntype Props = {\n href?: string\n items: ItemType[]\n headerSlot?: React.ReactNode\n defaultOpenKeys?: string[]\n defaultSelectedKeys?: string[]\n footerItems: ItemType[]\n className?: string\n onCollapse?: (isCollapsed: boolean) => void\n /** Start collapsed to the icon rail. The user can still expand it. */\n defaultCollapsed?: boolean\n}\n\nexport const NavMenu = ({\n href = '/',\n items,\n headerSlot,\n defaultOpenKeys,\n defaultSelectedKeys,\n footerItems,\n className,\n onCollapse,\n defaultCollapsed = false,\n}: Props) => {\n const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed)\n const [isToggleTooltipOpen, setToggleTooltipOpen] = React.useState(false)\n\n const toggleCollapse = React.useCallback(() => {\n setIsCollapsed(!isCollapsed)\n setToggleTooltipOpen(false)\n onCollapse?.(!isCollapsed)\n }, [isCollapsed])\n\n return (\n <div\n className={cx(\n styles.navMenuContainer,\n isCollapsed && styles.collapsed,\n 'bg-white',\n className\n )}\n >\n <div className={cx('flex', 'flex-col', 'h-full')}>\n <div className=\"py-5 px-3\">\n <div\n className={cx(\n 'flex',\n 'items-center',\n isCollapsed ? 'justify-center' : 'justify-between',\n styles.headerContainer,\n 'min-h-9'\n )}\n >\n <a\n href={href}\n className={cx('flex', 'items-center', 'gap-2', styles.logo)}\n >\n {isCollapsed ? <SmallLogo /> : <LogoWithText />}\n </a>\n <Tooltip\n title={isCollapsed ? 'Expand Menu' : 'Collapse Menu'}\n placement=\"right\"\n arrow={false}\n onOpenChange={(shouldBeOpen) => {\n setToggleTooltipOpen(shouldBeOpen)\n }}\n open={isToggleTooltipOpen}\n >\n <Button\n type=\"text\"\n icon={isCollapsed ? <ExpandIcon /> : <CollapseIcon />}\n onClick={toggleCollapse}\n className={cx('toggle-button')}\n />\n </Tooltip>\n </div>\n {headerSlot && <div className={cx('mt-5')}>{headerSlot}</div>}\n </div>\n <div className={cx('flex', 'flex-col', 'justify-between', 'flex-1')}>\n <Menu\n key={`nav-menu-main-${isCollapsed}`}\n mode={'inline'}\n compact={isCollapsed}\n items={items}\n defaultOpenKeys={isCollapsed ? undefined : defaultOpenKeys}\n defaultSelectedKeys={defaultSelectedKeys}\n />\n <Menu\n key={`nav-menu-footer-${isCollapsed}`}\n mode={'inline'}\n compact={isCollapsed}\n selectable={false}\n items={footerItems}\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA2BA,IAAa,WAAW,EACtB,OAAO,KACP,OACA,YACA,iBACA,qBACA,aACA,WACA,YACA,mBAAmB,YACR;CACX,MAAM,CAAC,aAAa,kBAAkBA,QAAM,SAAS,gBAAgB;CACrE,MAAM,CAAC,qBAAqB,wBAAwBA,QAAM,SAAS,KAAK;CAExE,MAAM,iBAAiBA,QAAM,kBAAkB;EAC7C,eAAe,CAAC,WAAW;EAC3B,qBAAqB,KAAK;EAC1B,aAAa,CAAC,WAAW;CAC3B,GAAG,CAAC,WAAW,CAAC;CAEhB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,YAAA,GAAWC,WAAAA,QAAAA,CACTC,uBAAAA,QAAO,kBACP,eAAeA,uBAAAA,QAAO,WACtB,YACA,SACF;EAEA,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,YAAA,GAAWD,WAAAA,QAAAA,CAAG,QAAQ,YAAY,QAAQ;GAA/C,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KACE,YAAA,GAAWA,WAAAA,QAAAA,CACT,QACA,gBACA,cAAc,mBAAmB,mBACjCC,uBAAAA,QAAO,iBACP,SACF;KAPF,UAAA,CASE,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;MACQ;MACN,YAAA,GAAWD,WAAAA,QAAAA,CAAG,QAAQ,gBAAgB,SAASC,uBAAAA,QAAO,IAAI;MAEzD,UAAA,cAAc,iBAAA,GAAA,kBAAA,IAAA,CAACC,8BAAAA,SAAD,CAAY,CAAA,IAAI,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,SAAD,CAAe,CAAA;KAC7C,CAAA,GACH,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,SAAD;MACE,OAAO,cAAc,gBAAgB;MACrC,WAAU;MACV,OAAO;MACP,eAAe,iBAAiB;OAC9B,qBAAqB,YAAY;MACnC;MACA,MAAM;MAEN,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD;OACE,MAAK;OACL,MAAM,cAAc,iBAAA,GAAA,kBAAA,IAAA,CAACC,4BAAAA,SAAD,CAAa,CAAA,IAAI,iBAAA,GAAA,kBAAA,IAAA,CAACC,8BAAAA,SAAD,CAAe,CAAA;OACpD,SAAS;OACT,YAAA,GAAWP,WAAAA,QAAAA,CAAG,eAAe;MAC9B,CAAA;KACM,CAAA,CACN;IACJ,CAAA,GAAA,cAAc,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,YAAA,GAAWA,WAAAA,QAAAA,CAAG,MAAM;KAAI,UAAA;IAAgB,CAAA,CACzD;GACL,CAAA,GAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,YAAA,GAAWA,WAAAA,QAAAA,CAAG,QAAQ,YAAY,mBAAmB,QAAQ;IAAlE,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACQ,aAAAA,MAAD;KAEE,MAAM;KACN,SAAS;KACF;KACP,iBAAiB,cAAc,KAAA,IAAY;KACtB;IACtB,GANM,iBAAiB,aAMvB,GACD,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,MAAD;KAEE,MAAM;KACN,SAAS;KACT,YAAY;KACZ,OAAO;IACR,GALM,mBAAmB,aAKzB,CACE;GACF,CAAA,CAAA;;CACF,CAAA;AAET"}
|
|
@@ -9,6 +9,8 @@ type Props = {
|
|
|
9
9
|
footerItems: ItemType[];
|
|
10
10
|
className?: string;
|
|
11
11
|
onCollapse?: (isCollapsed: boolean) => void;
|
|
12
|
+
/** Start collapsed to the icon rail. The user can still expand it. */
|
|
13
|
+
defaultCollapsed?: boolean;
|
|
12
14
|
};
|
|
13
|
-
export declare const NavMenu: ({ href, items, headerSlot, defaultOpenKeys, defaultSelectedKeys, footerItems, className, onCollapse, }: Props) => React.JSX.Element;
|
|
15
|
+
export declare const NavMenu: ({ href, items, headerSlot, defaultOpenKeys, defaultSelectedKeys, footerItems, className, onCollapse, defaultCollapsed, }: Props) => React.JSX.Element;
|
|
14
16
|
export {};
|
|
@@ -10,8 +10,8 @@ import * as React from "react";
|
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
import cx from "classnames";
|
|
12
12
|
//#region src/components/navMenu/NavMenu.tsx
|
|
13
|
-
var NavMenu = ({ href = "/", items, headerSlot, defaultOpenKeys, defaultSelectedKeys, footerItems, className, onCollapse }) => {
|
|
14
|
-
const [isCollapsed, setIsCollapsed] = React.useState(
|
|
13
|
+
var NavMenu = ({ href = "/", items, headerSlot, defaultOpenKeys, defaultSelectedKeys, footerItems, className, onCollapse, defaultCollapsed = false }) => {
|
|
14
|
+
const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed);
|
|
15
15
|
const [isToggleTooltipOpen, setToggleTooltipOpen] = React.useState(false);
|
|
16
16
|
const toggleCollapse = React.useCallback(() => {
|
|
17
17
|
setIsCollapsed(!isCollapsed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenu.js","names":["styles","SmallLogo","LogoWithText","ExpandIcon","CollapseIcon"],"sources":["../../../../src/components/navMenu/NavMenu.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ItemType } from 'antd/es/menu/interface'\nimport cx from 'classnames'\nimport { Menu } from '../menu'\n\nimport SmallLogo from '../../svgs/j2-logo-menu-collapse.svg'\nimport LogoWithText from '../../svgs/j2-logo-menu.svg'\nimport ExpandIcon from '../../svgs/menu-sidebar-expand.svg'\nimport CollapseIcon from '../../svgs/menu-sidebar-collapse.svg'\nimport { Button } from '../button'\n\nimport styles from './NavMenu.module.css'\nimport { Tooltip } from '../tooltip'\n\ntype Props = {\n href?: string\n items: ItemType[]\n headerSlot?: React.ReactNode\n defaultOpenKeys?: string[]\n defaultSelectedKeys?: string[]\n footerItems: ItemType[]\n className?: string\n onCollapse?: (isCollapsed: boolean) => void\n}\n\nexport const NavMenu = ({\n href = '/',\n items,\n headerSlot,\n defaultOpenKeys,\n defaultSelectedKeys,\n footerItems,\n className,\n onCollapse,\n}: Props) => {\n const [isCollapsed, setIsCollapsed] = React.useState(
|
|
1
|
+
{"version":3,"file":"NavMenu.js","names":["styles","SmallLogo","LogoWithText","ExpandIcon","CollapseIcon"],"sources":["../../../../src/components/navMenu/NavMenu.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ItemType } from 'antd/es/menu/interface'\nimport cx from 'classnames'\nimport { Menu } from '../menu'\n\nimport SmallLogo from '../../svgs/j2-logo-menu-collapse.svg'\nimport LogoWithText from '../../svgs/j2-logo-menu.svg'\nimport ExpandIcon from '../../svgs/menu-sidebar-expand.svg'\nimport CollapseIcon from '../../svgs/menu-sidebar-collapse.svg'\nimport { Button } from '../button'\n\nimport styles from './NavMenu.module.css'\nimport { Tooltip } from '../tooltip'\n\ntype Props = {\n href?: string\n items: ItemType[]\n headerSlot?: React.ReactNode\n defaultOpenKeys?: string[]\n defaultSelectedKeys?: string[]\n footerItems: ItemType[]\n className?: string\n onCollapse?: (isCollapsed: boolean) => void\n /** Start collapsed to the icon rail. The user can still expand it. */\n defaultCollapsed?: boolean\n}\n\nexport const NavMenu = ({\n href = '/',\n items,\n headerSlot,\n defaultOpenKeys,\n defaultSelectedKeys,\n footerItems,\n className,\n onCollapse,\n defaultCollapsed = false,\n}: Props) => {\n const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed)\n const [isToggleTooltipOpen, setToggleTooltipOpen] = React.useState(false)\n\n const toggleCollapse = React.useCallback(() => {\n setIsCollapsed(!isCollapsed)\n setToggleTooltipOpen(false)\n onCollapse?.(!isCollapsed)\n }, [isCollapsed])\n\n return (\n <div\n className={cx(\n styles.navMenuContainer,\n isCollapsed && styles.collapsed,\n 'bg-white',\n className\n )}\n >\n <div className={cx('flex', 'flex-col', 'h-full')}>\n <div className=\"py-5 px-3\">\n <div\n className={cx(\n 'flex',\n 'items-center',\n isCollapsed ? 'justify-center' : 'justify-between',\n styles.headerContainer,\n 'min-h-9'\n )}\n >\n <a\n href={href}\n className={cx('flex', 'items-center', 'gap-2', styles.logo)}\n >\n {isCollapsed ? <SmallLogo /> : <LogoWithText />}\n </a>\n <Tooltip\n title={isCollapsed ? 'Expand Menu' : 'Collapse Menu'}\n placement=\"right\"\n arrow={false}\n onOpenChange={(shouldBeOpen) => {\n setToggleTooltipOpen(shouldBeOpen)\n }}\n open={isToggleTooltipOpen}\n >\n <Button\n type=\"text\"\n icon={isCollapsed ? <ExpandIcon /> : <CollapseIcon />}\n onClick={toggleCollapse}\n className={cx('toggle-button')}\n />\n </Tooltip>\n </div>\n {headerSlot && <div className={cx('mt-5')}>{headerSlot}</div>}\n </div>\n <div className={cx('flex', 'flex-col', 'justify-between', 'flex-1')}>\n <Menu\n key={`nav-menu-main-${isCollapsed}`}\n mode={'inline'}\n compact={isCollapsed}\n items={items}\n defaultOpenKeys={isCollapsed ? undefined : defaultOpenKeys}\n defaultSelectedKeys={defaultSelectedKeys}\n />\n <Menu\n key={`nav-menu-footer-${isCollapsed}`}\n mode={'inline'}\n compact={isCollapsed}\n selectable={false}\n items={footerItems}\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;AA2BA,IAAa,WAAW,EACtB,OAAO,KACP,OACA,YACA,iBACA,qBACA,aACA,WACA,YACA,mBAAmB,YACR;CACX,MAAM,CAAC,aAAa,kBAAkB,MAAM,SAAS,gBAAgB;CACrE,MAAM,CAAC,qBAAqB,wBAAwB,MAAM,SAAS,KAAK;CAExE,MAAM,iBAAiB,MAAM,kBAAkB;EAC7C,eAAe,CAAC,WAAW;EAC3B,qBAAqB,KAAK;EAC1B,aAAa,CAAC,WAAW;CAC3B,GAAG,CAAC,WAAW,CAAC;CAEhB,OACE,oBAAC,OAAD;EACE,WAAW,GACTA,uBAAO,kBACP,eAAeA,uBAAO,WACtB,YACA,SACF;EAEA,UAAA,qBAAC,OAAD;GAAK,WAAW,GAAG,QAAQ,YAAY,QAAQ;GAA/C,UAAA,CACE,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,qBAAC,OAAD;KACE,WAAW,GACT,QACA,gBACA,cAAc,mBAAmB,mBACjCA,uBAAO,iBACP,SACF;KAPF,UAAA,CASE,oBAAC,KAAD;MACQ;MACN,WAAW,GAAG,QAAQ,gBAAgB,SAASA,uBAAO,IAAI;MAEzD,UAAA,cAAc,oBAACC,uBAAD,CAAY,CAAA,IAAI,oBAACC,eAAD,CAAe,CAAA;KAC7C,CAAA,GACH,oBAAC,SAAD;MACE,OAAO,cAAc,gBAAgB;MACrC,WAAU;MACV,OAAO;MACP,eAAe,iBAAiB;OAC9B,qBAAqB,YAAY;MACnC;MACA,MAAM;MAEN,UAAA,oBAAC,QAAD;OACE,MAAK;OACL,MAAM,cAAc,oBAACC,sBAAD,CAAa,CAAA,IAAI,oBAACC,wBAAD,CAAe,CAAA;OACpD,SAAS;OACT,WAAW,GAAG,eAAe;MAC9B,CAAA;KACM,CAAA,CACN;IACJ,CAAA,GAAA,cAAc,oBAAC,OAAD;KAAK,WAAW,GAAG,MAAM;KAAI,UAAA;IAAgB,CAAA,CACzD;GACL,CAAA,GAAA,qBAAC,OAAD;IAAK,WAAW,GAAG,QAAQ,YAAY,mBAAmB,QAAQ;IAAlE,UAAA,CACE,oBAAC,MAAD;KAEE,MAAM;KACN,SAAS;KACF;KACP,iBAAiB,cAAc,KAAA,IAAY;KACtB;IACtB,GANM,iBAAiB,aAMvB,GACD,oBAAC,MAAD;KAEE,MAAM;KACN,SAAS;KACT,YAAY;KACZ,OAAO;IACR,GALM,mBAAmB,aAKzB,CACE;GACF,CAAA,CAAA;;CACF,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.cjs","names":["AntdPopover","cx","styles"],"sources":["../../../../src/components/popover/Popover.tsx"],"sourcesContent":["import { Popover as AntdPopover, PopoverProps as AntdPopoverProps } from 'antd'\nimport cx from 'classnames'\nimport styles from './Popover.module.css'\n\ntype _Props = AntdPopoverProps & {\n contentPadding?: boolean\n scrollable?: boolean\n /* @deprecated use paddingSize instead */\n smallPadding?: boolean\n /* default padding is large */\n paddingSize?: 'xxs' | 'xs' | 'sm' | 'md' | 'xl'\n}\n\nexport type PopoverProps = Expand<_Props>\n\nconst Popover = ({\n children,\n placement = 'top',\n scrollable = false,\n contentPadding = true,\n content,\n smallPadding = false,\n paddingSize,\n arrow = false,\n rootClassName,\n ...props\n}: PopoverProps) => {\n return (\n <AntdPopover\n rootClassName={cx(\n rootClassName,\n styles.j2Popover,\n scrollable && styles.scrollable,\n smallPadding && styles.smallPadding,\n paddingSize && styles[`${paddingSize}Padding`]\n )}\n {...props}\n placement={placement}\n arrow={arrow}\n content={() => {\n if (!contentPadding) {\n return <div>{typeof content == 'function' ? content() : content}</div>\n }\n\n return typeof content == 'function' ? content() : content\n }}\n >\n <div>{children}</div>\n </AntdPopover>\n )\n}\n\nexport { Popover }\n"],"mappings":";;;;;;;AAeA,IAAM,WAAW,EACf,UACA,YAAY,OACZ,aAAa,OACb,iBAAiB,MACjB,SACA,eAAe,OACf,aACA,QAAQ,OACR,eACA,GAAG,YACe;CAClB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,KAAAA,SAAD;EACE,gBAAA,GAAeC,WAAAA,QAAAA,CACb,eACAC,uBAAAA,QAAO,WACP,cAAcA,uBAAAA,QAAO,YACrB,gBAAgBA,uBAAAA,QAAO,cACvB,eAAeA,uBAAAA,QAAO,GAAG,YAAY,SACvC;EACA,GAAI;EACO;EACJ;EACP,eAAe;GACb,IAAI,CAAC,gBACH,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAA,UAAM,OAAO,WAAW,aAAa,QAAQ,IAAI,QAAa,CAAA;GAGvE,OAAO,OAAO,WAAW,aAAa,QAAQ,IAAI;EACpD;EAEA,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAM,SAAc,CAAA;CACT,CAAA;AAEjB"}
|
|
1
|
+
{"version":3,"file":"Popover.cjs","names":["AntdPopover","cx","styles"],"sources":["../../../../src/components/popover/Popover.tsx"],"sourcesContent":["import { Popover as AntdPopover, PopoverProps as AntdPopoverProps } from 'antd'\nimport cx from 'classnames'\nimport styles from './Popover.module.css'\n\ntype _Props = AntdPopoverProps & {\n contentPadding?: boolean\n scrollable?: boolean\n /* @deprecated use paddingSize instead */\n smallPadding?: boolean\n /* default padding is large; `'none'` lets the content run to the edges */\n paddingSize?: 'none' | 'xxs' | 'xs' | 'sm' | 'md' | 'xl'\n}\n\nexport type PopoverProps = Expand<_Props>\n\nconst Popover = ({\n children,\n placement = 'top',\n scrollable = false,\n contentPadding = true,\n content,\n smallPadding = false,\n paddingSize,\n arrow = false,\n rootClassName,\n ...props\n}: PopoverProps) => {\n return (\n <AntdPopover\n rootClassName={cx(\n rootClassName,\n styles.j2Popover,\n scrollable && styles.scrollable,\n smallPadding && styles.smallPadding,\n paddingSize && styles[`${paddingSize}Padding`]\n )}\n {...props}\n placement={placement}\n arrow={arrow}\n content={() => {\n if (!contentPadding) {\n return <div>{typeof content == 'function' ? content() : content}</div>\n }\n\n return typeof content == 'function' ? content() : content\n }}\n >\n <div>{children}</div>\n </AntdPopover>\n )\n}\n\nexport { Popover }\n"],"mappings":";;;;;;;AAeA,IAAM,WAAW,EACf,UACA,YAAY,OACZ,aAAa,OACb,iBAAiB,MACjB,SACA,eAAe,OACf,aACA,QAAQ,OACR,eACA,GAAG,YACe;CAClB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,KAAAA,SAAD;EACE,gBAAA,GAAeC,WAAAA,QAAAA,CACb,eACAC,uBAAAA,QAAO,WACP,cAAcA,uBAAAA,QAAO,YACrB,gBAAgBA,uBAAAA,QAAO,cACvB,eAAeA,uBAAAA,QAAO,GAAG,YAAY,SACvC;EACA,GAAI;EACO;EACJ;EACP,eAAe;GACb,IAAI,CAAC,gBACH,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAA,UAAM,OAAO,WAAW,aAAa,QAAQ,IAAI,QAAa,CAAA;GAGvE,OAAO,OAAO,WAAW,aAAa,QAAQ,IAAI;EACpD;EAEA,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAM,SAAc,CAAA;CACT,CAAA;AAEjB"}
|
|
@@ -3,7 +3,7 @@ type _Props = AntdPopoverProps & {
|
|
|
3
3
|
contentPadding?: boolean;
|
|
4
4
|
scrollable?: boolean;
|
|
5
5
|
smallPadding?: boolean;
|
|
6
|
-
paddingSize?: 'xxs' | 'xs' | 'sm' | 'md' | 'xl';
|
|
6
|
+
paddingSize?: 'none' | 'xxs' | 'xs' | 'sm' | 'md' | 'xl';
|
|
7
7
|
};
|
|
8
8
|
export type PopoverProps = Expand<_Props>;
|
|
9
9
|
declare const Popover: ({ children, placement, scrollable, contentPadding, content, smallPadding, paddingSize, arrow, rootClassName, ...props }: PopoverProps) => import('react').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","names":["Popover","AntdPopover","styles"],"sources":["../../../../src/components/popover/Popover.tsx"],"sourcesContent":["import { Popover as AntdPopover, PopoverProps as AntdPopoverProps } from 'antd'\nimport cx from 'classnames'\nimport styles from './Popover.module.css'\n\ntype _Props = AntdPopoverProps & {\n contentPadding?: boolean\n scrollable?: boolean\n /* @deprecated use paddingSize instead */\n smallPadding?: boolean\n /* default padding is large */\n paddingSize?: 'xxs' | 'xs' | 'sm' | 'md' | 'xl'\n}\n\nexport type PopoverProps = Expand<_Props>\n\nconst Popover = ({\n children,\n placement = 'top',\n scrollable = false,\n contentPadding = true,\n content,\n smallPadding = false,\n paddingSize,\n arrow = false,\n rootClassName,\n ...props\n}: PopoverProps) => {\n return (\n <AntdPopover\n rootClassName={cx(\n rootClassName,\n styles.j2Popover,\n scrollable && styles.scrollable,\n smallPadding && styles.smallPadding,\n paddingSize && styles[`${paddingSize}Padding`]\n )}\n {...props}\n placement={placement}\n arrow={arrow}\n content={() => {\n if (!contentPadding) {\n return <div>{typeof content == 'function' ? content() : content}</div>\n }\n\n return typeof content == 'function' ? content() : content\n }}\n >\n <div>{children}</div>\n </AntdPopover>\n )\n}\n\nexport { Popover }\n"],"mappings":";;;;;AAeA,IAAMA,aAAW,EACf,UACA,YAAY,OACZ,aAAa,OACb,iBAAiB,MACjB,SACA,eAAe,OACf,aACA,QAAQ,OACR,eACA,GAAG,YACe;CAClB,OACE,oBAACC,SAAD;EACE,eAAe,GACb,eACAC,uBAAO,WACP,cAAcA,uBAAO,YACrB,gBAAgBA,uBAAO,cACvB,eAAeA,uBAAO,GAAG,YAAY,SACvC;EACA,GAAI;EACO;EACJ;EACP,eAAe;GACb,IAAI,CAAC,gBACH,OAAO,oBAAC,OAAD,EAAA,UAAM,OAAO,WAAW,aAAa,QAAQ,IAAI,QAAa,CAAA;GAGvE,OAAO,OAAO,WAAW,aAAa,QAAQ,IAAI;EACpD;EAEA,UAAA,oBAAC,OAAD,EAAM,SAAc,CAAA;CACT,CAAA;AAEjB"}
|
|
1
|
+
{"version":3,"file":"Popover.js","names":["Popover","AntdPopover","styles"],"sources":["../../../../src/components/popover/Popover.tsx"],"sourcesContent":["import { Popover as AntdPopover, PopoverProps as AntdPopoverProps } from 'antd'\nimport cx from 'classnames'\nimport styles from './Popover.module.css'\n\ntype _Props = AntdPopoverProps & {\n contentPadding?: boolean\n scrollable?: boolean\n /* @deprecated use paddingSize instead */\n smallPadding?: boolean\n /* default padding is large; `'none'` lets the content run to the edges */\n paddingSize?: 'none' | 'xxs' | 'xs' | 'sm' | 'md' | 'xl'\n}\n\nexport type PopoverProps = Expand<_Props>\n\nconst Popover = ({\n children,\n placement = 'top',\n scrollable = false,\n contentPadding = true,\n content,\n smallPadding = false,\n paddingSize,\n arrow = false,\n rootClassName,\n ...props\n}: PopoverProps) => {\n return (\n <AntdPopover\n rootClassName={cx(\n rootClassName,\n styles.j2Popover,\n scrollable && styles.scrollable,\n smallPadding && styles.smallPadding,\n paddingSize && styles[`${paddingSize}Padding`]\n )}\n {...props}\n placement={placement}\n arrow={arrow}\n content={() => {\n if (!contentPadding) {\n return <div>{typeof content == 'function' ? content() : content}</div>\n }\n\n return typeof content == 'function' ? content() : content\n }}\n >\n <div>{children}</div>\n </AntdPopover>\n )\n}\n\nexport { Popover }\n"],"mappings":";;;;;AAeA,IAAMA,aAAW,EACf,UACA,YAAY,OACZ,aAAa,OACb,iBAAiB,MACjB,SACA,eAAe,OACf,aACA,QAAQ,OACR,eACA,GAAG,YACe;CAClB,OACE,oBAACC,SAAD;EACE,eAAe,GACb,eACAC,uBAAO,WACP,cAAcA,uBAAO,YACrB,gBAAgBA,uBAAO,cACvB,eAAeA,uBAAO,GAAG,YAAY,SACvC;EACA,GAAI;EACO;EACJ;EACP,eAAe;GACb,IAAI,CAAC,gBACH,OAAO,oBAAC,OAAD,EAAA,UAAM,OAAO,WAAW,aAAa,QAAQ,IAAI,QAAa,CAAA;GAGvE,OAAO,OAAO,WAAW,aAAa,QAAQ,IAAI;EACpD;EAEA,UAAA,oBAAC,OAAD,EAAM,SAAc,CAAA;CACT,CAAA;AAEjB"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
//#region src/components/popover/Popover.module.css
|
|
2
|
-
var j2Popover = "
|
|
3
|
-
var smallPadding = "
|
|
4
|
-
var smPadding = "
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
2
|
+
var j2Popover = "_j2Popover_r2pkr_1";
|
|
3
|
+
var smallPadding = "_smallPadding_r2pkr_6";
|
|
4
|
+
var smPadding = "_smPadding_r2pkr_7";
|
|
5
|
+
var nonePadding = "_nonePadding_r2pkr_11";
|
|
6
|
+
var xxsPadding = "_xxsPadding_r2pkr_15";
|
|
7
|
+
var xsPadding = "_xsPadding_r2pkr_19";
|
|
8
|
+
var mdPadding = "_mdPadding_r2pkr_23";
|
|
9
|
+
var xlPadding = "_xlPadding_r2pkr_27";
|
|
10
|
+
var popoverHeader = "_popoverHeader_r2pkr_38";
|
|
11
|
+
var scrollable = "_scrollable_r2pkr_44";
|
|
11
12
|
var Popover_module_default = {
|
|
12
13
|
j2Popover,
|
|
13
14
|
smallPadding,
|
|
14
15
|
smPadding,
|
|
16
|
+
nonePadding,
|
|
15
17
|
xxsPadding,
|
|
16
18
|
xsPadding,
|
|
17
19
|
mdPadding,
|
|
@@ -23,6 +25,7 @@ var Popover_module_default = {
|
|
|
23
25
|
exports.default = Popover_module_default;
|
|
24
26
|
exports.j2Popover = j2Popover;
|
|
25
27
|
exports.mdPadding = mdPadding;
|
|
28
|
+
exports.nonePadding = nonePadding;
|
|
26
29
|
exports.popoverHeader = popoverHeader;
|
|
27
30
|
exports.scrollable = scrollable;
|
|
28
31
|
exports.smPadding = smPadding;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.module.css.cjs","names":[],"sources":["../../../../src/components/popover/Popover.module.css"],"sourcesContent":[".j2Popover {\n :global(.ant-popover-container) {\n padding: var(--j2-padding-lg);\n }\n\n &.smallPadding,\n &.smPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-sm);\n }\n\n &.xxsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xxs);\n }\n\n &.xsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xs);\n }\n\n &.mdPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-md);\n }\n\n &.xlPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xl);\n }\n\n :global(.ant-popover-title) {\n font-size: var(--j2-font-size-heading-4);\n font-weight: var(--j2-font-weight-strong);\n line-height: var(--j2-line-height-heading-4);\n }\n}\n\n.popoverHeader {\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n font-weight: bold;\n}\n\n.scrollable {\n :global(.ant-popover-container) {\n padding: 0;\n }\n\n :global(.ant-popover-title) {\n top: 0;\n z-index: 10;\n position: sticky;\n margin-bottom: 0;\n background: white;\n padding: var(--j2-padding-sm);\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n font-size: var(--j2-font-size);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n }\n\n :global(.ant-popover-content) {\n padding: var(--j2-padding-sm) var(--j2-padding-sm) var(--j2-padding-sm)\n var(--j2-padding-sm);\n overflow: auto;\n max-height: 295px;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Popover.module.css.cjs","names":[],"sources":["../../../../src/components/popover/Popover.module.css"],"sourcesContent":[".j2Popover {\n :global(.ant-popover-container) {\n padding: var(--j2-padding-lg);\n }\n\n &.smallPadding,\n &.smPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-sm);\n }\n\n &.nonePadding :global(.ant-popover-container) {\n padding: 0;\n }\n\n &.xxsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xxs);\n }\n\n &.xsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xs);\n }\n\n &.mdPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-md);\n }\n\n &.xlPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xl);\n }\n\n :global(.ant-popover-title) {\n font-size: var(--j2-font-size-heading-4);\n font-weight: var(--j2-font-weight-strong);\n line-height: var(--j2-line-height-heading-4);\n }\n}\n\n.popoverHeader {\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n font-weight: bold;\n}\n\n.scrollable {\n :global(.ant-popover-container) {\n padding: 0;\n }\n\n :global(.ant-popover-title) {\n top: 0;\n z-index: 10;\n position: sticky;\n margin-bottom: 0;\n background: white;\n padding: var(--j2-padding-sm);\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n font-size: var(--j2-font-size);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n }\n\n :global(.ant-popover-content) {\n padding: var(--j2-padding-sm) var(--j2-padding-sm) var(--j2-padding-sm)\n var(--j2-padding-sm);\n overflow: auto;\n max-height: 295px;\n }\n}\n"],"mappings":""}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
//#region src/components/popover/Popover.module.css
|
|
2
|
-
var j2Popover = "
|
|
3
|
-
var smallPadding = "
|
|
4
|
-
var smPadding = "
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
2
|
+
var j2Popover = "_j2Popover_r2pkr_1";
|
|
3
|
+
var smallPadding = "_smallPadding_r2pkr_6";
|
|
4
|
+
var smPadding = "_smPadding_r2pkr_7";
|
|
5
|
+
var nonePadding = "_nonePadding_r2pkr_11";
|
|
6
|
+
var xxsPadding = "_xxsPadding_r2pkr_15";
|
|
7
|
+
var xsPadding = "_xsPadding_r2pkr_19";
|
|
8
|
+
var mdPadding = "_mdPadding_r2pkr_23";
|
|
9
|
+
var xlPadding = "_xlPadding_r2pkr_27";
|
|
10
|
+
var popoverHeader = "_popoverHeader_r2pkr_38";
|
|
11
|
+
var scrollable = "_scrollable_r2pkr_44";
|
|
11
12
|
var Popover_module_default = {
|
|
12
13
|
j2Popover,
|
|
13
14
|
smallPadding,
|
|
14
15
|
smPadding,
|
|
16
|
+
nonePadding,
|
|
15
17
|
xxsPadding,
|
|
16
18
|
xsPadding,
|
|
17
19
|
mdPadding,
|
|
@@ -20,6 +22,6 @@ var Popover_module_default = {
|
|
|
20
22
|
scrollable
|
|
21
23
|
};
|
|
22
24
|
//#endregion
|
|
23
|
-
export { Popover_module_default as default, j2Popover, mdPadding, popoverHeader, scrollable, smPadding, smallPadding, xlPadding, xsPadding, xxsPadding };
|
|
25
|
+
export { Popover_module_default as default, j2Popover, mdPadding, nonePadding, popoverHeader, scrollable, smPadding, smallPadding, xlPadding, xsPadding, xxsPadding };
|
|
24
26
|
|
|
25
27
|
//# sourceMappingURL=Popover.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.module.css.js","names":[],"sources":["../../../../src/components/popover/Popover.module.css"],"sourcesContent":[".j2Popover {\n :global(.ant-popover-container) {\n padding: var(--j2-padding-lg);\n }\n\n &.smallPadding,\n &.smPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-sm);\n }\n\n &.xxsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xxs);\n }\n\n &.xsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xs);\n }\n\n &.mdPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-md);\n }\n\n &.xlPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xl);\n }\n\n :global(.ant-popover-title) {\n font-size: var(--j2-font-size-heading-4);\n font-weight: var(--j2-font-weight-strong);\n line-height: var(--j2-line-height-heading-4);\n }\n}\n\n.popoverHeader {\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n font-weight: bold;\n}\n\n.scrollable {\n :global(.ant-popover-container) {\n padding: 0;\n }\n\n :global(.ant-popover-title) {\n top: 0;\n z-index: 10;\n position: sticky;\n margin-bottom: 0;\n background: white;\n padding: var(--j2-padding-sm);\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n font-size: var(--j2-font-size);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n }\n\n :global(.ant-popover-content) {\n padding: var(--j2-padding-sm) var(--j2-padding-sm) var(--j2-padding-sm)\n var(--j2-padding-sm);\n overflow: auto;\n max-height: 295px;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Popover.module.css.js","names":[],"sources":["../../../../src/components/popover/Popover.module.css"],"sourcesContent":[".j2Popover {\n :global(.ant-popover-container) {\n padding: var(--j2-padding-lg);\n }\n\n &.smallPadding,\n &.smPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-sm);\n }\n\n &.nonePadding :global(.ant-popover-container) {\n padding: 0;\n }\n\n &.xxsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xxs);\n }\n\n &.xsPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xs);\n }\n\n &.mdPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-md);\n }\n\n &.xlPadding :global(.ant-popover-container) {\n padding: var(--j2-padding-xl);\n }\n\n :global(.ant-popover-title) {\n font-size: var(--j2-font-size-heading-4);\n font-weight: var(--j2-font-weight-strong);\n line-height: var(--j2-line-height-heading-4);\n }\n}\n\n.popoverHeader {\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n font-weight: bold;\n}\n\n.scrollable {\n :global(.ant-popover-container) {\n padding: 0;\n }\n\n :global(.ant-popover-title) {\n top: 0;\n z-index: 10;\n position: sticky;\n margin-bottom: 0;\n background: white;\n padding: var(--j2-padding-sm);\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.05);\n font-size: var(--j2-font-size);\n border-radius: var(--j2-border-radius) var(--j2-border-radius) 0 0;\n }\n\n :global(.ant-popover-content) {\n padding: var(--j2-padding-sm) var(--j2-padding-sm) var(--j2-padding-sm)\n var(--j2-padding-sm);\n overflow: auto;\n max-height: 295px;\n }\n}\n"],"mappings":""}
|
|
@@ -32,7 +32,9 @@ var filterOptions = (options, searchValue) => {
|
|
|
32
32
|
};
|
|
33
33
|
function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading, multiple, value, onChange, options, renderLabel, rootClassName, popupClassName, variant, trigger = "select", defaultOpen = false, ...props }) {
|
|
34
34
|
const isHeadline = variant === "headlined";
|
|
35
|
-
const
|
|
35
|
+
const isField = variant === "field";
|
|
36
|
+
const antVariant = isHeadline ? "borderless" : isField ? "outlined" : variant;
|
|
37
|
+
const isChip = !isField && variant !== "underlined" && !isHeadline;
|
|
36
38
|
const [searchValue, setSearchValue] = (0, react.useState)("");
|
|
37
39
|
const [focusTrigger, setFocusTrigger] = (0, react.useState)(defaultOpen ? 1 : 0);
|
|
38
40
|
const [isOpen, setIsOpen] = (0, react.useState)(defaultOpen);
|
|
@@ -61,7 +63,10 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
61
63
|
if (focusTrigger > 0) requestAnimationFrame(() => {
|
|
62
64
|
requestAnimationFrame(() => {
|
|
63
65
|
setTimeout(() => {
|
|
64
|
-
inputRef.current?.focus({
|
|
66
|
+
inputRef.current?.focus({
|
|
67
|
+
cursor: "end",
|
|
68
|
+
preventScroll: true
|
|
69
|
+
});
|
|
65
70
|
}, 100);
|
|
66
71
|
});
|
|
67
72
|
});
|
|
@@ -149,7 +154,6 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
149
154
|
className: "mb-2 px-2 pb-2 border-b -mx-1 mt-1",
|
|
150
155
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Input, {
|
|
151
156
|
ref: inputRef,
|
|
152
|
-
autoFocus: true,
|
|
153
157
|
placeholder: searchPlaceholder || "Search...",
|
|
154
158
|
value: searchValue,
|
|
155
159
|
onChange: (e) => {
|
|
@@ -221,7 +225,7 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
221
225
|
role: "option",
|
|
222
226
|
"aria-selected": isSelected,
|
|
223
227
|
onClick: () => handleOptionClick(optionValue),
|
|
224
|
-
className: (0, classnames.default)("px-3 py-1.5 rounded cursor-pointer text-sm", isSelected ? "bg-[var(--j2-color-primary)] text-
|
|
228
|
+
className: (0, classnames.default)("px-3 py-1.5 rounded cursor-pointer text-sm", isSelected ? "bg-[var(--j2-color-primary-bg-hover)] font-semibold text-[var(--j2-color-primary)] hover:bg-[var(--j2-color-primary-bg-hover)]" : "hover:bg-[var(--j2-color-bg-hover)]"),
|
|
225
229
|
children: hasLogo ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
226
230
|
className: "flex items-center gap-2",
|
|
227
231
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -246,7 +250,6 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
246
250
|
className: "pb-2 border-b border-j2-border-secondary",
|
|
247
251
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Input, {
|
|
248
252
|
ref: inputRef,
|
|
249
|
-
autoFocus: true,
|
|
250
253
|
placeholder: searchPlaceholder || "Search...",
|
|
251
254
|
value: searchValue,
|
|
252
255
|
onChange: (e) => {
|
|
@@ -311,13 +314,13 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
311
314
|
if (trigger === "dropdown") {
|
|
312
315
|
const hasSelection = multiple ? value.length > 0 : Boolean(value);
|
|
313
316
|
const triggerContent = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
314
|
-
className: "inline-flex items-center gap-1",
|
|
317
|
+
className: "inline-flex items-center gap-1.5",
|
|
315
318
|
children: [hasSelection ? displayText : formControlPlaceholder ?? "Select", loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Spin, {
|
|
316
319
|
indicator: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ant_design_icons.LoadingOutlined, { spin: true }),
|
|
317
320
|
size: "small",
|
|
318
321
|
"data-testid": "loading-spinner"
|
|
319
322
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_phosphor_icons_react.CaretDownIcon, {
|
|
320
|
-
weight: "
|
|
323
|
+
weight: "duotone",
|
|
321
324
|
"data-testid": "caret-down"
|
|
322
325
|
})]
|
|
323
326
|
});
|
|
@@ -329,7 +332,7 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
329
332
|
popupRender: dropdownPopupRender,
|
|
330
333
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Typography.Link, {
|
|
331
334
|
disabled: props.disabled,
|
|
332
|
-
className: (0, classnames.default)("inline-flex", rootClassName),
|
|
335
|
+
className: (0, classnames.default)("inline-flex", require_SummarizedSelect_module.default.dropdownTrigger, rootClassName),
|
|
333
336
|
children: triggerContent
|
|
334
337
|
})
|
|
335
338
|
});
|
|
@@ -347,7 +350,7 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
347
350
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Select, {
|
|
348
351
|
open: isOpen,
|
|
349
352
|
showSearch: false,
|
|
350
|
-
style: { width: measuredWidth },
|
|
353
|
+
style: { width: isField ? "100%" : measuredWidth },
|
|
351
354
|
suffixIcon: loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Spin, {
|
|
352
355
|
indicator: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ant_design_icons.LoadingOutlined, { spin: true }),
|
|
353
356
|
size: "small",
|
|
@@ -374,9 +377,10 @@ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading,
|
|
|
374
377
|
onOpenChange: handleOpenChange,
|
|
375
378
|
classNames: {
|
|
376
379
|
root: (0, classnames.default)(rootClassName, require_SummarizedSelect_module.default.summarizedSelect, {
|
|
377
|
-
[require_SummarizedSelect_module.default.hemisphericSelect]:
|
|
378
|
-
[require_SummarizedSelect_module.default.isActive]: multiple && value.length > 0
|
|
379
|
-
[require_SummarizedSelect_module.default.headlinedSelect]: isHeadline
|
|
380
|
+
[require_SummarizedSelect_module.default.hemisphericSelect]: isChip,
|
|
381
|
+
[require_SummarizedSelect_module.default.isActive]: isChip && multiple && value.length > 0,
|
|
382
|
+
[require_SummarizedSelect_module.default.headlinedSelect]: isHeadline,
|
|
383
|
+
[require_SummarizedSelect_module.default.fieldSelect]: isField
|
|
380
384
|
}),
|
|
381
385
|
popup: { root: popupClassName }
|
|
382
386
|
},
|