@solibo/solibo-ui 1.0.15 → 1.0.16
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/assets/index.css +1 -1
- package/dist/assets/index10.css +1 -1
- package/dist/assets/index12.css +1 -1
- package/dist/assets/index13.css +1 -1
- package/dist/assets/index14.css +1 -1
- package/dist/assets/index15.css +1 -1
- package/dist/assets/index18.css +1 -1
- package/dist/assets/index23.css +1 -1
- package/dist/assets/index24.css +1 -1
- package/dist/assets/index25.css +1 -1
- package/dist/assets/index26.css +1 -1
- package/dist/assets/index27.css +1 -1
- package/dist/assets/index29.css +1 -1
- package/dist/assets/index3.css +1 -1
- package/dist/assets/index30.css +1 -1
- package/dist/assets/index31.css +1 -1
- package/dist/assets/index33.css +1 -1
- package/dist/assets/index34.css +1 -1
- package/dist/assets/index35.css +1 -1
- package/dist/assets/index36.css +1 -1
- package/dist/assets/index37.css +1 -1
- package/dist/assets/index39.css +1 -1
- package/dist/assets/index4.css +1 -1
- package/dist/assets/index43.css +1 -1
- package/dist/assets/index44.css +1 -1
- package/dist/assets/index45.css +1 -1
- package/dist/assets/index47.css +1 -1
- package/dist/assets/index48.css +1 -1
- package/dist/assets/index49.css +1 -1
- package/dist/assets/index6.css +1 -1
- package/dist/assets/index8.css +1 -1
- package/dist/assets/index9.css +1 -1
- package/dist/assets/menu-popover.css +1 -1
- package/dist/components/app-link/index.cjs +1 -1
- package/dist/components/app-link/index.js +8 -8
- package/dist/components/aside/index.cjs +1 -1
- package/dist/components/aside/index.js +11 -11
- package/dist/components/avatar/index.cjs +1 -1
- package/dist/components/avatar/index.cjs.map +1 -1
- package/dist/components/avatar/index.js +58 -58
- package/dist/components/badge/index.cjs +1 -1
- package/dist/components/badge/index.js +27 -27
- package/dist/components/banner/index.cjs +1 -1
- package/dist/components/banner/index.js +14 -14
- package/dist/components/button/index.cjs +1 -1
- package/dist/components/button/index.js +18 -18
- package/dist/components/card/index.cjs +1 -1
- package/dist/components/card/index.js +46 -46
- package/dist/components/checkbox/index.cjs +1 -1
- package/dist/components/checkbox/index.js +7 -7
- package/dist/components/collapsible/index.cjs +1 -1
- package/dist/components/collapsible/index.cjs.map +1 -1
- package/dist/components/collapsible/index.js +18 -37
- package/dist/components/collapsible/index.js.map +1 -1
- package/dist/components/controls/index.cjs +1 -1
- package/dist/components/controls/index.cjs.map +1 -1
- package/dist/components/controls/index.js +110 -90
- package/dist/components/controls/index.js.map +1 -1
- package/dist/components/croppable/index.cjs +1 -1
- package/dist/components/croppable/index.js +181 -181
- package/dist/components/dialog/index.cjs +1 -1
- package/dist/components/dialog/index.js +31 -31
- package/dist/components/dropdown/index.cjs +1 -1
- package/dist/components/dropdown/index.js +80 -80
- package/dist/components/editor/index.cjs +16 -16
- package/dist/components/editor/index.cjs.map +1 -1
- package/dist/components/editor/index.js +196 -196
- package/dist/components/file/index.cjs +1 -1
- package/dist/components/file/index.js +24 -24
- package/dist/components/header/index.cjs +1 -1
- package/dist/components/header/index.cjs.map +1 -1
- package/dist/components/header/index.js +14 -14
- package/dist/components/icon/index.cjs +1 -1
- package/dist/components/icon/index.js +20 -20
- package/dist/components/input/index.cjs +1 -1
- package/dist/components/input/index.js +1 -1
- package/dist/components/list/index.cjs +1 -1
- package/dist/components/list/index.js +24 -24
- package/dist/components/loading/index.cjs +1 -1
- package/dist/components/loading/index.js +11 -11
- package/dist/components/menu/index.cjs +1 -1
- package/dist/components/menu/index.js +1 -1
- package/dist/components/message/index.cjs +1 -1
- package/dist/components/message/index.cjs.map +1 -1
- package/dist/components/message/index.js +26 -26
- package/dist/components/messages/index.cjs +1 -1
- package/dist/components/messages/index.js +20 -20
- package/dist/components/nav/index.cjs +1 -1
- package/dist/components/nav/index.js +12 -12
- package/dist/components/popover/index.cjs +1 -1
- package/dist/components/popover/index.js +38 -38
- package/dist/components/portal/index.cjs +1 -1
- package/dist/components/portal/index.js +7 -7
- package/dist/components/search/index.cjs +1 -1
- package/dist/components/search/index.cjs.map +1 -1
- package/dist/components/search/index.js +36 -36
- package/dist/components/sortable/index.cjs +1 -1
- package/dist/components/sortable/index.js +74 -74
- package/dist/components/textarea/index.cjs +1 -1
- package/dist/components/textarea/index.js +15 -15
- package/dist/components/toasts/index.cjs +1 -1
- package/dist/components/toasts/index.js +4 -4
- package/dist/components/toggle/index.cjs +1 -1
- package/dist/components/toggle/index.js +6 -6
- package/dist/components/tooltip/index.cjs +1 -1
- package/dist/components/tooltip/index.js +1 -1
- package/dist/{index-DE2nzqL5.js → index-BIV5OwVJ.js} +23 -23
- package/dist/{index-DE2nzqL5.js.map → index-BIV5OwVJ.js.map} +1 -1
- package/dist/index-CQNlYa2P.cjs +2 -0
- package/dist/{index-DF8JisYI.cjs.map → index-CQNlYa2P.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -1
- package/dist/{menu-popover-jTTxzTGZ.cjs → menu-popover-D1ALaiV5.cjs} +2 -2
- package/dist/{menu-popover-jTTxzTGZ.cjs.map → menu-popover-D1ALaiV5.cjs.map} +1 -1
- package/dist/{menu-popover-SiOOwab-.js → menu-popover-DQHDIw-8.js} +12 -12
- package/dist/{menu-popover-SiOOwab-.js.map → menu-popover-DQHDIw-8.js.map} +1 -1
- package/dist/tokens.json +1 -1
- package/package.json +1 -1
- package/dist/index-DF8JisYI.cjs +0 -2
package/dist/index.d.ts
CHANGED
|
@@ -134,10 +134,11 @@ export declare type CollapsibleProps = {
|
|
|
134
134
|
summary: ReactNode;
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
-
export declare const Controls: ({ children, className, overflow, overflowAccessibleLabel, variant, ...props }: ControlsProps) => JSX.Element | null;
|
|
137
|
+
export declare const Controls: ({ children, className, maxVisibleButtons, overflow, overflowAccessibleLabel, variant, ...props }: ControlsProps) => JSX.Element | null;
|
|
138
138
|
|
|
139
139
|
export declare type ControlsProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
140
140
|
children?: React.ReactNode;
|
|
141
|
+
maxVisibleButtons?: number;
|
|
141
142
|
overflow?: 'menu';
|
|
142
143
|
overflowAccessibleLabel?: string;
|
|
143
144
|
variant?: keyof typeof variants_6;
|
|
@@ -904,6 +905,7 @@ declare const variants_5: {
|
|
|
904
905
|
|
|
905
906
|
declare const variants_6: {
|
|
906
907
|
default: string;
|
|
908
|
+
embedded: string;
|
|
907
909
|
fixed: string;
|
|
908
910
|
inline: string;
|
|
909
911
|
};
|
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import { Header as _ } from "./components/header/index.js";
|
|
|
27
27
|
import { Icon as oo } from "./components/icon/index.js";
|
|
28
28
|
import { Iframe as eo } from "./components/iframe/index.js";
|
|
29
29
|
import { Image as po } from "./components/image/index.js";
|
|
30
|
-
import { I as xo } from "./index-
|
|
30
|
+
import { I as xo } from "./index-BIV5OwVJ.js";
|
|
31
31
|
import { Link as ao } from "./components/link/index.js";
|
|
32
32
|
import { List as io } from "./components/list/index.js";
|
|
33
33
|
import { Loading as no } from "./components/loading/index.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require('./assets/menu-popover.css');const i=require("react/jsx-runtime"),
|
|
2
|
-
//# sourceMappingURL=menu-popover-
|
|
1
|
+
"use strict";require('./assets/menu-popover.css');const i=require("react/jsx-runtime"),h=require("./classix-5H4IWnMA.cjs"),c=require("react"),k=require("./components/list/index.cjs"),y=require("./components/icon/index.cjs"),j=require("./components/popover/index.cjs"),A="_list_25aqk_3",w="_item_25aqk_15",I="_active_25aqk_38",C="_danger_25aqk_47",a={list:A,item:w,active:I,danger:C},D=o=>Array.from((o==null?void 0:o.querySelectorAll('[role="menuitem"]'))??[]).filter(s=>!s.disabled);function E({actions:o,initialFocus:s,menuAccessibleLabel:l,onSelect:m,usesMenuSemantics:t=!1}){const d=c.useRef(null),u=c.useCallback(e=>{const n=D(d.current);if(n.length===0)return;if(e==="first"||e==="last"){n[e==="first"?0:n.length-1].focus();return}const r=n.indexOf(document.activeElement),p=e==="next"?(r+1)%n.length:(r-1+n.length)%n.length;n[p].focus()},[]);c.useEffect(()=>{t&&u(s??"first")},[u,s,t]);const g=e=>{if(!t)return;const r={ArrowDown:"next",ArrowUp:"previous",End:"last",Home:"first"}[e.key];r&&(e.preventDefault(),u(r))};return i.jsx(k.List,{"aria-label":l,className:a.list,onKeyDown:g,ref:d,role:t?"menu":void 0,"data-component":"menuactionlist",children:o.map(({button:e,id:n,isActive:r,isDanger:p,value:v},q)=>i.jsx("li",{role:t?"none":void 0,children:c.cloneElement(e,{"aria-current":r?"true":e.props["aria-current"],className:h.t(e.props.className,a.item,r&&a.active,p&&a.danger),onClick:f=>{var _,x;(x=(_=e.props).onClick)==null||x.call(_,f),m(v,f)},role:t?"menuitem":e.props.role,variant:"tertiary"})},n??e.key??q))})}const P=({children:o,inline:s,triggerAccessibleLabel:l,triggerIcon:m="dots",triggerLabel:t})=>i.jsx(j.Popover,{inline:s,triggerAccessibleLabel:l,triggerAriaHasPopup:"menu",triggerButtonContent:i.jsxs(i.Fragment,{children:[t,i.jsx(y.Icon,{gap:t?"left":"none",name:m,size:"medium"})]}),"data-component":"menupopover",children:o});exports.MenuActionList=E;exports.MenuPopover=P;
|
|
2
|
+
//# sourceMappingURL=menu-popover-D1ALaiV5.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-popover-
|
|
1
|
+
{"version":3,"file":"menu-popover-D1ALaiV5.cjs","sources":["../src/components/menu/action-list.tsx","../src/components/menu/menu-popover.tsx"],"sourcesContent":["import cx from 'classix';\nimport { cloneElement, useCallback, useEffect, useRef } from 'react';\n\nimport { type ButtonProps } from '../button';\nimport { List } from '../list';\nimport { type PopoverInitialFocus } from '../popover';\nimport styles from './styles.module.css';\n\nexport type MenuAction<T> = {\n button: React.ReactElement<ButtonProps>;\n id?: React.Key;\n isActive?: boolean;\n isDanger?: boolean;\n value: T;\n};\n\ntype MenuFocusTarget = 'first' | 'last' | 'next' | 'previous';\n\nconst getFocusableItems = (list: HTMLUListElement | HTMLOListElement | null) =>\n Array.from(list?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? []).filter(\n (item) => !item.disabled\n );\n\nexport function MenuActionList<T>({\n actions,\n initialFocus,\n menuAccessibleLabel,\n onSelect,\n usesMenuSemantics = false,\n}: {\n actions: MenuAction<T>[];\n initialFocus?: PopoverInitialFocus;\n menuAccessibleLabel?: string;\n onSelect: (value: T, event: React.MouseEvent<HTMLButtonElement>) => void;\n usesMenuSemantics?: boolean;\n}) {\n const listRef = useRef<HTMLUListElement | HTMLOListElement>(null);\n\n const focusItem = useCallback((target: MenuFocusTarget) => {\n const items = getFocusableItems(listRef.current);\n if (items.length === 0) return;\n\n if (target === 'first' || target === 'last') {\n items[target === 'first' ? 0 : items.length - 1].focus();\n return;\n }\n\n const currentIndex = items.indexOf(document.activeElement as HTMLButtonElement);\n const nextIndex =\n target === 'next'\n ? (currentIndex + 1) % items.length\n : (currentIndex - 1 + items.length) % items.length;\n items[nextIndex].focus();\n }, []);\n\n useEffect(() => {\n if (usesMenuSemantics) focusItem(initialFocus ?? 'first');\n }, [focusItem, initialFocus, usesMenuSemantics]);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!usesMenuSemantics) return;\n\n const targets = {\n ArrowDown: 'next',\n ArrowUp: 'previous',\n End: 'last',\n Home: 'first',\n } as const;\n const target = targets[event.key as keyof typeof targets];\n if (!target) return;\n\n event.preventDefault();\n focusItem(target);\n };\n\n return (\n <List\n aria-label={menuAccessibleLabel}\n className={styles.list}\n onKeyDown={handleKeyDown}\n ref={listRef}\n role={usesMenuSemantics ? 'menu' : undefined}\n >\n {actions.map(({ button, id, isActive, isDanger, value }, index) => (\n <li\n key={id ?? button.key ?? index}\n role={usesMenuSemantics ? 'none' : undefined}\n >\n {cloneElement(button, {\n 'aria-current': isActive ? 'true' : button.props['aria-current'],\n className: cx(\n button.props.className,\n styles.item,\n isActive && styles.active,\n isDanger && styles.danger\n ),\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => {\n button.props.onClick?.(event);\n onSelect(value, event);\n },\n role: usesMenuSemantics ? 'menuitem' : button.props.role,\n variant: 'tertiary',\n })}\n </li>\n ))}\n </List>\n );\n}\n","import { Icon } from '../icon';\nimport { type IconName } from '../icon/icons';\nimport { Popover, type PopoverProps } from '../popover';\n\nexport const MenuPopover = ({\n children,\n inline,\n triggerAccessibleLabel,\n triggerIcon = 'dots',\n triggerLabel,\n}: Pick<PopoverProps, 'children' | 'inline' | 'triggerAccessibleLabel'> & {\n triggerIcon?: IconName;\n triggerLabel?: React.ReactNode;\n}) => (\n <Popover\n inline={inline}\n triggerAccessibleLabel={triggerAccessibleLabel}\n triggerAriaHasPopup='menu'\n triggerButtonContent={\n <>\n {triggerLabel}\n <Icon\n gap={triggerLabel ? 'left' : 'none'}\n name={triggerIcon}\n size='medium'\n />\n </>\n }\n >\n {children}\n </Popover>\n);\n"],"names":["getFocusableItems","list","Array","from","querySelectorAll","filter","item","disabled","MenuActionList","actions","initialFocus","menuAccessibleLabel","onSelect","usesMenuSemantics","listRef","useRef","focusItem","useCallback","target","items","current","length","focus","currentIndex","indexOf","document","activeElement","nextIndex","useEffect","handleKeyDown","event","ArrowDown","ArrowUp","End","Home","key","preventDefault","List","styles","undefined","map","button","id","isActive","isDanger","value","index","jsx","cloneElement","props","className","cx","active","danger","onClick","role","variant","MenuPopover","children","inline","triggerAccessibleLabel","triggerIcon","triggerLabel","Popover","jsxs","Fragment","Icon"],"mappings":"0VAkBMA,EAAqBC,GACzBC,MAAMC,MAAKF,GAAAA,YAAAA,EAAMG,iBAAoC,uBAAwB,CAAA,CAAE,EAAEC,OAC9EC,GAAS,CAACA,EAAKC,QAClB,EAEK,SAASC,EAAkB,CAChCC,QAAAA,EACAC,aAAAA,EACAC,oBAAAA,EACAC,SAAAA,EACAC,kBAAAA,EAAoB,EAOtB,EAAG,CACD,MAAMC,EAAUC,EAAAA,OAA4C,IAAI,EAE1DC,EAAYC,cAAaC,GAA4B,CACzD,MAAMC,EAAQnB,EAAkBc,EAAQM,OAAO,EAC/C,GAAID,EAAME,SAAW,EAAG,OAExB,GAAIH,IAAW,SAAWA,IAAW,OAAQ,CAC3CC,EAAMD,IAAW,QAAU,EAAIC,EAAME,OAAS,CAAC,EAAEC,MAAAA,EACjD,MACF,CAEA,MAAMC,EAAeJ,EAAMK,QAAQC,SAASC,aAAkC,EACxEC,EACJT,IAAW,QACNK,EAAe,GAAKJ,EAAME,QAC1BE,EAAe,EAAIJ,EAAME,QAAUF,EAAME,OAChDF,EAAMQ,CAAS,EAAEL,MAAAA,CACnB,EAAG,CAAA,CAAE,EAELM,EAAAA,UAAU,IAAM,CACVf,GAAmBG,EAAUN,GAAgB,OAAO,CAC1D,EAAG,CAACM,EAAWN,EAAcG,CAAiB,CAAC,EAE/C,MAAMgB,EAAiBC,GAAiD,CACtE,GAAI,CAACjB,EAAmB,OAQxB,MAAMK,EANU,CACda,UAAW,OACXC,QAAS,WACTC,IAAK,OACLC,KAAM,OAAA,EAEeJ,EAAMK,GAA2B,EACnDjB,IAELY,EAAMM,eAAAA,EACNpB,EAAUE,CAAM,EAClB,EAEA,aACGmB,OAAA,CACC,aAAY1B,EACZ,UAAW2B,EAAOrC,KAClB,UAAW4B,EACX,IAAKf,EACL,KAAMD,EAAoB,OAAS0B,OAAU,iBAAA,iBAE5C9B,SAAAA,EAAQ+B,IAAI,CAAC,CAAEC,OAAAA,EAAQC,GAAAA,EAAIC,SAAAA,EAAUC,SAAAA,EAAUC,MAAAA,CAAAA,EAASC,IACvDC,EAAAA,IAAC,KAAA,CAEC,KAAMlC,EAAoB,OAAS0B,OAElCS,SAAAA,EAAAA,aAAaP,EAAQ,CACpB,eAAgBE,EAAW,OAASF,EAAOQ,MAAM,cAAc,EAC/DC,UAAWC,EAAAA,EACTV,EAAOQ,MAAMC,UACbZ,EAAOhC,KACPqC,GAAYL,EAAOc,OACnBR,GAAYN,EAAOe,MACrB,EACAC,QAAUxB,GAA+C,UACvDW,GAAAA,EAAAA,EAAOQ,OAAMK,UAAbb,MAAAA,EAAAA,KAAAA,EAAuBX,GACvBlB,EAASiC,EAAOf,CAAK,CACvB,EACAyB,KAAM1C,EAAoB,WAAa4B,EAAOQ,MAAMM,KACpDC,QAAS,UAAA,CACV,CAAA,EAjBId,GAAMD,EAAON,KAAOW,CAkB3B,CACD,EACH,CAEJ,CCvGO,MAAMW,EAAcA,CAAC,CAC1BC,SAAAA,EACAC,OAAAA,EACAC,uBAAAA,EACAC,YAAAA,EAAc,OACdC,aAAAA,CAIF,UACGC,EAAAA,QAAA,CACC,OAAAJ,EACA,uBAAAC,EACA,oBAAoB,OACpB,qBACEI,EAAAA,KAAAC,EAAAA,SAAA,CACGH,SAAAA,CAAAA,EACDf,EAAAA,IAACmB,EAAAA,MACC,IAAKJ,EAAe,OAAS,OAC7B,KAAMD,EACN,KAAK,QAAA,CAAQ,CAAA,CAAA,CAEjB,EACD,iBAAA,cAEAH,SAAAA,CAAAA,CACH"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as s, jsxs as
|
|
1
|
+
import { jsx as s, jsxs as k, Fragment as x } from "react/jsx-runtime";
|
|
2
2
|
import { t as y } from "./classix-DG18itHa.js";
|
|
3
|
-
import { useRef as
|
|
3
|
+
import { useRef as q, useCallback as w, useEffect as A, cloneElement as I } from "react";
|
|
4
4
|
import { List as C } from "./components/list/index.js";
|
|
5
5
|
import { Icon as D } from "./components/icon/index.js";
|
|
6
6
|
import { Popover as E } from "./components/popover/index.js";
|
|
7
|
-
import './assets/menu-popover.css';const N = "
|
|
7
|
+
import './assets/menu-popover.css';const N = "_list_25aqk_3", P = "_item_25aqk_15", j = "_active_25aqk_38", H = "_danger_25aqk_47", i = {
|
|
8
8
|
list: N,
|
|
9
9
|
item: P,
|
|
10
10
|
active: j,
|
|
@@ -17,7 +17,7 @@ function U({
|
|
|
17
17
|
onSelect: c,
|
|
18
18
|
usesMenuSemantics: t = !1
|
|
19
19
|
}) {
|
|
20
|
-
const p =
|
|
20
|
+
const p = q(null), m = w((e) => {
|
|
21
21
|
const r = K(p.current);
|
|
22
22
|
if (r.length === 0) return;
|
|
23
23
|
if (e === "first" || e === "last") {
|
|
@@ -30,7 +30,7 @@ function U({
|
|
|
30
30
|
A(() => {
|
|
31
31
|
t && m(a ?? "first");
|
|
32
32
|
}, [m, a, t]);
|
|
33
|
-
const
|
|
33
|
+
const _ = (e) => {
|
|
34
34
|
if (!t) return;
|
|
35
35
|
const o = {
|
|
36
36
|
ArrowDown: "next",
|
|
@@ -40,22 +40,22 @@ function U({
|
|
|
40
40
|
}[e.key];
|
|
41
41
|
o && (e.preventDefault(), m(o));
|
|
42
42
|
};
|
|
43
|
-
return /* @__PURE__ */ s(C, { "aria-label": l, className: i.list, onKeyDown:
|
|
43
|
+
return /* @__PURE__ */ s(C, { "aria-label": l, className: i.list, onKeyDown: _, ref: p, role: t ? "menu" : void 0, "data-component": "menuactionlist", children: n.map(({
|
|
44
44
|
button: e,
|
|
45
45
|
id: r,
|
|
46
46
|
isActive: o,
|
|
47
47
|
isDanger: f,
|
|
48
|
-
value:
|
|
49
|
-
},
|
|
48
|
+
value: v
|
|
49
|
+
}, h) => /* @__PURE__ */ s("li", { role: t ? "none" : void 0, children: I(e, {
|
|
50
50
|
"aria-current": o ? "true" : e.props["aria-current"],
|
|
51
51
|
className: y(e.props.className, i.item, o && i.active, f && i.danger),
|
|
52
52
|
onClick: (d) => {
|
|
53
53
|
var u, g;
|
|
54
|
-
(g = (u = e.props).onClick) == null || g.call(u, d), c(
|
|
54
|
+
(g = (u = e.props).onClick) == null || g.call(u, d), c(v, d);
|
|
55
55
|
},
|
|
56
56
|
role: t ? "menuitem" : e.props.role,
|
|
57
57
|
variant: "tertiary"
|
|
58
|
-
}) }, r ?? e.key ??
|
|
58
|
+
}) }, r ?? e.key ?? h)) });
|
|
59
59
|
}
|
|
60
60
|
const G = ({
|
|
61
61
|
children: n,
|
|
@@ -63,7 +63,7 @@ const G = ({
|
|
|
63
63
|
triggerAccessibleLabel: l,
|
|
64
64
|
triggerIcon: c = "dots",
|
|
65
65
|
triggerLabel: t
|
|
66
|
-
}) => /* @__PURE__ */ s(E, { inline: a, triggerAccessibleLabel: l, triggerAriaHasPopup: "menu", triggerButtonContent: /* @__PURE__ */
|
|
66
|
+
}) => /* @__PURE__ */ s(E, { inline: a, triggerAccessibleLabel: l, triggerAriaHasPopup: "menu", triggerButtonContent: /* @__PURE__ */ k(x, { children: [
|
|
67
67
|
t,
|
|
68
68
|
/* @__PURE__ */ s(D, { gap: t ? "left" : "none", name: c, size: "medium" })
|
|
69
69
|
] }), "data-component": "menupopover", children: n });
|
|
@@ -71,4 +71,4 @@ export {
|
|
|
71
71
|
U as M,
|
|
72
72
|
G as a
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=menu-popover-
|
|
74
|
+
//# sourceMappingURL=menu-popover-DQHDIw-8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-popover-
|
|
1
|
+
{"version":3,"file":"menu-popover-DQHDIw-8.js","sources":["../src/components/menu/action-list.tsx","../src/components/menu/menu-popover.tsx"],"sourcesContent":["import cx from 'classix';\nimport { cloneElement, useCallback, useEffect, useRef } from 'react';\n\nimport { type ButtonProps } from '../button';\nimport { List } from '../list';\nimport { type PopoverInitialFocus } from '../popover';\nimport styles from './styles.module.css';\n\nexport type MenuAction<T> = {\n button: React.ReactElement<ButtonProps>;\n id?: React.Key;\n isActive?: boolean;\n isDanger?: boolean;\n value: T;\n};\n\ntype MenuFocusTarget = 'first' | 'last' | 'next' | 'previous';\n\nconst getFocusableItems = (list: HTMLUListElement | HTMLOListElement | null) =>\n Array.from(list?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? []).filter(\n (item) => !item.disabled\n );\n\nexport function MenuActionList<T>({\n actions,\n initialFocus,\n menuAccessibleLabel,\n onSelect,\n usesMenuSemantics = false,\n}: {\n actions: MenuAction<T>[];\n initialFocus?: PopoverInitialFocus;\n menuAccessibleLabel?: string;\n onSelect: (value: T, event: React.MouseEvent<HTMLButtonElement>) => void;\n usesMenuSemantics?: boolean;\n}) {\n const listRef = useRef<HTMLUListElement | HTMLOListElement>(null);\n\n const focusItem = useCallback((target: MenuFocusTarget) => {\n const items = getFocusableItems(listRef.current);\n if (items.length === 0) return;\n\n if (target === 'first' || target === 'last') {\n items[target === 'first' ? 0 : items.length - 1].focus();\n return;\n }\n\n const currentIndex = items.indexOf(document.activeElement as HTMLButtonElement);\n const nextIndex =\n target === 'next'\n ? (currentIndex + 1) % items.length\n : (currentIndex - 1 + items.length) % items.length;\n items[nextIndex].focus();\n }, []);\n\n useEffect(() => {\n if (usesMenuSemantics) focusItem(initialFocus ?? 'first');\n }, [focusItem, initialFocus, usesMenuSemantics]);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!usesMenuSemantics) return;\n\n const targets = {\n ArrowDown: 'next',\n ArrowUp: 'previous',\n End: 'last',\n Home: 'first',\n } as const;\n const target = targets[event.key as keyof typeof targets];\n if (!target) return;\n\n event.preventDefault();\n focusItem(target);\n };\n\n return (\n <List\n aria-label={menuAccessibleLabel}\n className={styles.list}\n onKeyDown={handleKeyDown}\n ref={listRef}\n role={usesMenuSemantics ? 'menu' : undefined}\n >\n {actions.map(({ button, id, isActive, isDanger, value }, index) => (\n <li\n key={id ?? button.key ?? index}\n role={usesMenuSemantics ? 'none' : undefined}\n >\n {cloneElement(button, {\n 'aria-current': isActive ? 'true' : button.props['aria-current'],\n className: cx(\n button.props.className,\n styles.item,\n isActive && styles.active,\n isDanger && styles.danger\n ),\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => {\n button.props.onClick?.(event);\n onSelect(value, event);\n },\n role: usesMenuSemantics ? 'menuitem' : button.props.role,\n variant: 'tertiary',\n })}\n </li>\n ))}\n </List>\n );\n}\n","import { Icon } from '../icon';\nimport { type IconName } from '../icon/icons';\nimport { Popover, type PopoverProps } from '../popover';\n\nexport const MenuPopover = ({\n children,\n inline,\n triggerAccessibleLabel,\n triggerIcon = 'dots',\n triggerLabel,\n}: Pick<PopoverProps, 'children' | 'inline' | 'triggerAccessibleLabel'> & {\n triggerIcon?: IconName;\n triggerLabel?: React.ReactNode;\n}) => (\n <Popover\n inline={inline}\n triggerAccessibleLabel={triggerAccessibleLabel}\n triggerAriaHasPopup='menu'\n triggerButtonContent={\n <>\n {triggerLabel}\n <Icon\n gap={triggerLabel ? 'left' : 'none'}\n name={triggerIcon}\n size='medium'\n />\n </>\n }\n >\n {children}\n </Popover>\n);\n"],"names":["getFocusableItems","list","Array","from","querySelectorAll","filter","item","disabled","MenuActionList","actions","initialFocus","menuAccessibleLabel","onSelect","usesMenuSemantics","listRef","useRef","focusItem","useCallback","target","items","current","length","focus","currentIndex","indexOf","document","activeElement","nextIndex","useEffect","handleKeyDown","event","ArrowDown","ArrowUp","End","Home","key","preventDefault","List","styles","undefined","map","button","id","isActive","isDanger","value","index","jsx","cloneElement","props","className","cx","active","danger","onClick","role","variant","MenuPopover","children","inline","triggerAccessibleLabel","triggerIcon","triggerLabel","Popover","jsxs","Fragment","Icon"],"mappings":"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"}
|
package/dist/tokens.json
CHANGED
package/package.json
CHANGED
package/dist/index-DF8JisYI.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";require('./assets/index45.css');const o=require("react/jsx-runtime"),d=require("./classix-5H4IWnMA.cjs"),h=require("react"),w=require("./icons-DaZGJzI0.cjs"),S=require("./use-touched-Bq5Gjbpz.cjs");function z(t){return t&&`${t[0].toLocaleUpperCase()}${t.slice(1)}`}function T(t){const n=z(t);return n&&!n.endsWith(":")?`${n}:`:n}const G="_input_151j9_3",H="_touched_151j9_43",U="_label_151j9_48",W="_inline_151j9_57",k="_code_151j9_86",s={input:G,touched:H,label:U,inline:W,code:k};function A({className:t,defaultCountryCode:n="+47",disabled:c=!1,icon:_,label:p,onBlur:$,placeholder:x,ref:g,required:m,style:v,type:e="text",variant:f="default",...L}){const[j,b]=h.useState(""),[u,I]=h.useState(""),{name:B,onChange:a,pattern:F,value:l,...P}=L,{touched:N,onBlur:R}=S.useTouched(l===""),r=_&&e!=="radio"&&e!=="datetime-local"?_:void 0,q=p&&f==="inline"?T(p):p,C=r?{...v,"--icon-svg":w.iconSVG(r,!0)}:v,E=S.composeEventHandlers(R,$);h.useEffect(()=>{if(a&&e==="tel"){const i={name:B,value:u?(j||n).split(" ").join("")+u.split(" ").join(""):void 0};a({target:i,currentTarget:i})}},[j,n,B,a,u,e]),h.useEffect(()=>{e==="tel"&&!l&&(I(""),b(""))},[e,l]);const V=o.jsxs(o.Fragment,{children:[o.jsx("input",{disabled:c,hidden:!0,onChange:a,pattern:void 0,placeholder:x,ref:g,type:e,value:l}),o.jsx("input",{type:"text",className:d.t(s.code,s.input),disabled:c,maxLength:5,onChange:i=>b(i.target.value),placeholder:n,value:j}),o.jsx("input",{...P,type:"tel",className:d.t(s.input,t,N&&s.touched),"data-icon":r?"true":void 0,disabled:c,maxLength:14,name:void 0,onChange:i=>I(i.target.value),onBlur:E,pattern:F,required:m,style:C,value:u})]});return o.jsxs("label",{className:d.t(s.label,f==="inline"&&s.inline),"data-component":"input",children:[q&&o.jsx("span",{"data-required":m||void 0,children:q}),e==="tel"?V:o.jsx("input",{...L,ref:g,className:d.t(s.input,t,N&&s.touched),"data-icon":r?"true":void 0,disabled:c,onBlur:E,placeholder:x,required:m,style:C,type:e})]})}exports.Input=A;exports.formatInlineLabel=T;
|
|
2
|
-
//# sourceMappingURL=index-DF8JisYI.cjs.map
|