@mage-ui/components 1.0.68 → 1.0.69
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/components/controls/dropdown/Dropdown.d.mts +2 -0
- package/dist/components/controls/dropdown/Dropdown.d.mts.map +1 -1
- package/dist/components/controls/dropdown/Dropdown.mjs +1 -1
- package/dist/components/controls/dropdown/Dropdown.mjs.map +1 -1
- package/dist/components/controls/dropdown/DropdownContextProvider.d.mts +2 -0
- package/dist/components/controls/dropdown/DropdownContextProvider.d.mts.map +1 -1
- package/dist/components/controls/dropdown/DropdownContextProvider.mjs +1 -1
- package/dist/components/controls/dropdown/DropdownContextProvider.mjs.map +1 -1
- package/dist/components/controls/dropdown/combobox/ComboboxOptions.mjs +1 -1
- package/dist/components/controls/dropdown/combobox/ComboboxOptions.mjs.map +1 -1
- package/dist/components/data-display/icons/icon/Icon.mjs +1 -1
- package/dist/components/data-display/icons/icon/Icon.mjs.map +1 -1
- package/dist/components/data-display/icons/icon-raw/IconRaw.mjs +1 -1
- package/dist/components/data-display/icons/icon-raw/IconRaw.mjs.map +1 -1
- package/dist/components/data-display/icons/icon-svg/IconSvg.mjs +1 -1
- package/dist/components/data-display/icons/icon-svg/IconSvg.mjs.map +1 -1
- package/dist/components/data-display/kanban/Kanban.mjs +1 -1
- package/dist/components/data-display/kanban/KanbanCard.d.mts +4 -0
- package/dist/components/data-display/kanban/KanbanCard.d.mts.map +1 -1
- package/dist/components/data-display/kanban/KanbanCard.mjs +1 -1
- package/dist/components/data-display/kanban/KanbanCard.mjs.map +1 -1
- package/dist/components/data-display/kanban/KanbanCardAdder.mjs +1 -1
- package/dist/components/data-display/kanban/kanbanUtils.mjs +1 -1
- package/dist/components/data-display/kanban/kanbanUtils.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -31,6 +31,8 @@ type DropdownProps = {
|
|
|
31
31
|
dropdownHeight?: number | string;
|
|
32
32
|
shouldFilter?: boolean;
|
|
33
33
|
dropdownTopSlot?: ReactNode;
|
|
34
|
+
defaultValue?: DropdownValue;
|
|
35
|
+
onChange?: (value: DropdownValue) => void;
|
|
34
36
|
} & DataAttributes;
|
|
35
37
|
//#endregion
|
|
36
38
|
export { DropdownProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"mappings":";;;;;;;;KAoBK,cAAA;EAAA,CACF,GAAA;AAAA;AAAA,KAGS,aAAA;EACV,QAAA,EAAU,SAAA;EACV,YAAA;EACA,WAAA;EACA,UAAA;IACE,QAAA;IACA,IAAA;IACA,OAAA;IACA,MAAA;IACA,KAAA;IACA,MAAA;EAAA;EAEF,MAAA,EAAQ,SAAA;EACR,OAAA,EAAS,aAAA;EACT,eAAA,GAAkB,OAAA,CAChB,IAAA,CAAK,uBAAA;IAEL,UAAA,GAAa,IAAA,CACX,WAAA,CAAY,uBAAA;MAGZ,0BAAA;IAAA;EAAA;EAGJ,cAAA;EACA,YAAA;EACA,eAAA,GAAkB,SAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"Dropdown.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"mappings":";;;;;;;;KAoBK,cAAA;EAAA,CACF,GAAA;AAAA;AAAA,KAGS,aAAA;EACV,QAAA,EAAU,SAAA;EACV,YAAA;EACA,WAAA;EACA,UAAA;IACE,QAAA;IACA,IAAA;IACA,OAAA;IACA,MAAA;IACA,KAAA;IACA,MAAA;EAAA;EAEF,MAAA,EAAQ,SAAA;EACR,OAAA,EAAS,aAAA;EACT,eAAA,GAAkB,OAAA,CAChB,IAAA,CAAK,uBAAA;IAEL,UAAA,GAAa,IAAA,CACX,WAAA,CAAY,uBAAA;MAGZ,0BAAA;IAAA;EAAA;EAGJ,cAAA;EACA,YAAA;EACA,eAAA,GAAkB,SAAA;EAClB,YAAA,GAAe,aAAA;EACf,QAAA,IAAY,KAAA,EAAO,aAAA;AAAA,IACjB,cAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ScrollAreaAutosize as e}from"../../misc/scroll-area-autosize/ScrollAreaAutosize.mjs";import{DropdownContextProvider as t,useDropdownContext as n}from"./DropdownContextProvider.mjs";import{cx as r}from"@mage-ui/styled-system/css";import{dropdown as i,dropdownEmpty as a,dropdownOption as o,dropdownOptions as s,dropdownRoot as c,dropdownScrollAreaAutosize as l}from"@mage-ui/styled-system/recipes";import{Combobox as u}from"@mantine/core";import{jsx as d,jsxs as f}from"react/jsx-runtime";const p=({children:t,classNames:p,target:m,scrollAreaProps:h,dropdownHeight:g=192,dropdownTopSlot:_,...v})=>{let{store:y,setValue:b}=n(),x=Object.fromEntries(Object.entries(v).filter(([e])=>e.startsWith(`data-`))),S=Object.fromEntries(Object.entries(v).filter(([e])=>!e.startsWith(`data-`)));return f(u,{width:`target`,store:y,withinPortal:!0,keepMounted:!1,onOptionSubmit:e=>{b(e)},classNames:{dropdown:r(p?.dropdown??i(),p?.root??c()),options:p?.options??s(),option:p?.option??o(),empty:p?.empty??a(),search:p?.search},...S,children:[d(u.Target,{children:m}),f(u.Dropdown,{...x,children:[_&&_,d(e,{type:`scroll`,mah:g,classNames:{scrollArea:h?.classNames?.dropdownScrollAreaAutosize??l()},...h,children:t})]})]})};function m({options:e,shouldFilter:n=!0,...
|
|
1
|
+
import{ScrollAreaAutosize as e}from"../../misc/scroll-area-autosize/ScrollAreaAutosize.mjs";import{DropdownContextProvider as t,useDropdownContext as n}from"./DropdownContextProvider.mjs";import{cx as r}from"@mage-ui/styled-system/css";import{dropdown as i,dropdownEmpty as a,dropdownOption as o,dropdownOptions as s,dropdownRoot as c,dropdownScrollAreaAutosize as l}from"@mage-ui/styled-system/recipes";import{Combobox as u}from"@mantine/core";import{jsx as d,jsxs as f}from"react/jsx-runtime";const p=({children:t,classNames:p,target:m,scrollAreaProps:h,dropdownHeight:g=192,dropdownTopSlot:_,...v})=>{let{store:y,setValue:b}=n(),x=Object.fromEntries(Object.entries(v).filter(([e])=>e.startsWith(`data-`))),S=Object.fromEntries(Object.entries(v).filter(([e])=>!e.startsWith(`data-`)));return f(u,{width:`target`,store:y,withinPortal:!0,keepMounted:!1,onOptionSubmit:e=>{b(e)},classNames:{dropdown:r(p?.dropdown??i(),p?.root??c()),options:p?.options??s(),option:p?.option??o(),empty:p?.empty??a(),search:p?.search},...S,children:[d(u.Target,{children:m}),f(u.Dropdown,{...x,children:[_&&_,d(e,{type:`scroll`,mah:g,classNames:{scrollArea:h?.classNames?.dropdownScrollAreaAutosize??l()},...h,children:t})]})]})};function m({options:e,shouldFilter:n=!0,defaultValue:r,onChange:i,...a}){return d(t,{options:e,shouldFilter:n,defaultValue:r,onChange:i,children:d(p,{...a})})}m.Options=u.Options,m.Options.displayName=`Dropdown.Options`,m.Option=u.Option,m.Option.displayName=`Dropdown.Option`,m.Empty=u.Empty,m.Empty.displayName=`Dropdown.Empty`,m.Search=u.Search,m.Search.displayName=`Dropdown.Search`,m.EventsTarget=u.EventsTarget,m.EventsTarget.displayName=`Dropdown.EventsTarget`;export{m as Dropdown};
|
|
2
2
|
//# sourceMappingURL=Dropdown.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.mjs","names":["MantineCombobox"],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dropdown,\n dropdownEmpty,\n dropdownOption,\n dropdownOptions,\n dropdownRoot,\n dropdownScrollAreaAutosize,\n} from '@mage-ui/styled-system/recipes';\nimport { Combobox as MantineCombobox } from '@mantine/core';\n\nimport { ScrollAreaAutosize, type ScrollAreaAutosizeProps } from '../../misc';\nimport {\n DropdownContextProvider,\n type DropdownValue,\n useDropdownContext,\n} from './DropdownContextProvider';\n\ntype DataAttributes = {\n [key: `data-${string}`]: string | number | boolean | undefined;\n};\n\nexport type DropdownProps = {\n children: ReactNode;\n withinPortal?: boolean;\n keepMounted?: boolean;\n classNames?: {\n dropdown?: string;\n root?: string;\n options?: string;\n option?: string;\n empty?: string;\n search?: string;\n };\n target: ReactNode;\n options: DropdownValue[];\n scrollAreaProps?: Partial<\n Omit<ScrollAreaAutosizeProps, 'children' | 'classNames'>\n > & {\n classNames?: Omit<\n NonNullable<ScrollAreaAutosizeProps['classNames']>,\n 'scrollArea'\n > & {\n dropdownScrollAreaAutosize?: string;\n };\n };\n dropdownHeight?: number | string;\n shouldFilter?: boolean;\n dropdownTopSlot?: ReactNode;\n} & DataAttributes;\n\nconst DropdownContent = ({\n children,\n classNames,\n target,\n scrollAreaProps,\n dropdownHeight = 192,\n dropdownTopSlot,\n ...props\n}: Omit<DropdownProps, 'options'>) => {\n const { store, setValue } = useDropdownContext();\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith('data-')),\n ) as DataAttributes;\n const comboboxProps = Object.fromEntries(\n Object.entries(props).filter(([key]) => !key.startsWith('data-')),\n );\n\n return (\n <MantineCombobox\n width='target'\n store={store}\n withinPortal={true}\n keepMounted={false}\n onOptionSubmit={(option) => {\n setValue(option);\n }}\n classNames={{\n dropdown: cx(\n classNames?.dropdown ?? dropdown(),\n classNames?.root ?? dropdownRoot(),\n ),\n options: classNames?.options ?? dropdownOptions(),\n option: classNames?.option ?? dropdownOption(),\n empty: classNames?.empty ?? dropdownEmpty(),\n search: classNames?.search,\n }}\n {...comboboxProps}\n >\n <MantineCombobox.Target>{target}</MantineCombobox.Target>\n <MantineCombobox.Dropdown {...dataAttributes}>\n {dropdownTopSlot && dropdownTopSlot}\n <ScrollAreaAutosize\n type='scroll'\n mah={dropdownHeight}\n classNames={{\n scrollArea:\n scrollAreaProps?.classNames?.dropdownScrollAreaAutosize ??\n dropdownScrollAreaAutosize(),\n }}\n {...scrollAreaProps}\n >\n {children}\n </ScrollAreaAutosize>\n </MantineCombobox.Dropdown>\n </MantineCombobox>\n );\n};\n\nexport function Dropdown({\n options,\n shouldFilter = true,\n ...props\n}: DropdownProps) {\n return (\n <DropdownContextProvider
|
|
1
|
+
{"version":3,"file":"Dropdown.mjs","names":["MantineCombobox"],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dropdown,\n dropdownEmpty,\n dropdownOption,\n dropdownOptions,\n dropdownRoot,\n dropdownScrollAreaAutosize,\n} from '@mage-ui/styled-system/recipes';\nimport { Combobox as MantineCombobox } from '@mantine/core';\n\nimport { ScrollAreaAutosize, type ScrollAreaAutosizeProps } from '../../misc';\nimport {\n DropdownContextProvider,\n type DropdownValue,\n useDropdownContext,\n} from './DropdownContextProvider';\n\ntype DataAttributes = {\n [key: `data-${string}`]: string | number | boolean | undefined;\n};\n\nexport type DropdownProps = {\n children: ReactNode;\n withinPortal?: boolean;\n keepMounted?: boolean;\n classNames?: {\n dropdown?: string;\n root?: string;\n options?: string;\n option?: string;\n empty?: string;\n search?: string;\n };\n target: ReactNode;\n options: DropdownValue[];\n scrollAreaProps?: Partial<\n Omit<ScrollAreaAutosizeProps, 'children' | 'classNames'>\n > & {\n classNames?: Omit<\n NonNullable<ScrollAreaAutosizeProps['classNames']>,\n 'scrollArea'\n > & {\n dropdownScrollAreaAutosize?: string;\n };\n };\n dropdownHeight?: number | string;\n shouldFilter?: boolean;\n dropdownTopSlot?: ReactNode;\n defaultValue?: DropdownValue;\n onChange?: (value: DropdownValue) => void;\n} & DataAttributes;\n\nconst DropdownContent = ({\n children,\n classNames,\n target,\n scrollAreaProps,\n dropdownHeight = 192,\n dropdownTopSlot,\n ...props\n}: Omit<DropdownProps, 'options' | 'defaultValue' | 'onChange'>) => {\n const { store, setValue } = useDropdownContext();\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith('data-')),\n ) as DataAttributes;\n const comboboxProps = Object.fromEntries(\n Object.entries(props).filter(([key]) => !key.startsWith('data-')),\n );\n\n return (\n <MantineCombobox\n width='target'\n store={store}\n withinPortal={true}\n keepMounted={false}\n onOptionSubmit={(option) => {\n setValue(option);\n }}\n classNames={{\n dropdown: cx(\n classNames?.dropdown ?? dropdown(),\n classNames?.root ?? dropdownRoot(),\n ),\n options: classNames?.options ?? dropdownOptions(),\n option: classNames?.option ?? dropdownOption(),\n empty: classNames?.empty ?? dropdownEmpty(),\n search: classNames?.search,\n }}\n {...comboboxProps}\n >\n <MantineCombobox.Target>{target}</MantineCombobox.Target>\n <MantineCombobox.Dropdown {...dataAttributes}>\n {dropdownTopSlot && dropdownTopSlot}\n <ScrollAreaAutosize\n type='scroll'\n mah={dropdownHeight}\n classNames={{\n scrollArea:\n scrollAreaProps?.classNames?.dropdownScrollAreaAutosize ??\n dropdownScrollAreaAutosize(),\n }}\n {...scrollAreaProps}\n >\n {children}\n </ScrollAreaAutosize>\n </MantineCombobox.Dropdown>\n </MantineCombobox>\n );\n};\n\nexport function Dropdown({\n options,\n shouldFilter = true,\n defaultValue,\n onChange,\n ...props\n}: DropdownProps) {\n return (\n <DropdownContextProvider\n options={options}\n shouldFilter={shouldFilter}\n defaultValue={defaultValue}\n onChange={onChange}\n >\n <DropdownContent {...props} />\n </DropdownContextProvider>\n );\n}\n\nDropdown.Options = MantineCombobox.Options;\nDropdown.Options.displayName = 'Dropdown.Options';\nDropdown.Option = MantineCombobox.Option;\nDropdown.Option.displayName = 'Dropdown.Option';\nDropdown.Empty = MantineCombobox.Empty;\nDropdown.Empty.displayName = 'Dropdown.Empty';\nDropdown.Search = MantineCombobox.Search;\nDropdown.Search.displayName = 'Dropdown.Search';\nDropdown.EventsTarget = MantineCombobox.EventsTarget;\nDropdown.EventsTarget.displayName = 'Dropdown.EventsTarget';\n"],"mappings":"+eAuDA,MAAM,GAAmB,CACvB,WACA,aACA,SACA,kBACA,iBAAiB,IACjB,kBACA,GAAG,KAC+D,CAClE,GAAM,CAAE,QAAO,YAAa,GAAoB,CAC1C,EAAiB,OAAO,YAC5B,OAAO,QAAQ,EAAM,CAAC,QAAQ,CAAC,KAAS,EAAI,WAAW,QAAQ,CAAC,CACjE,CACK,EAAgB,OAAO,YAC3B,OAAO,QAAQ,EAAM,CAAC,QAAQ,CAAC,KAAS,CAAC,EAAI,WAAW,QAAQ,CAAC,CAClE,CAED,OACE,EAACA,EAAAA,CACC,MAAM,SACC,QACP,aAAc,GACd,YAAa,GACb,eAAiB,GAAW,CAC1B,EAAS,EAAO,EAElB,WAAY,CACV,SAAU,EACR,GAAY,UAAY,GAAU,CAClC,GAAY,MAAQ,GAAc,CACnC,CACD,QAAS,GAAY,SAAW,GAAiB,CACjD,OAAQ,GAAY,QAAU,GAAgB,CAC9C,MAAO,GAAY,OAAS,GAAe,CAC3C,OAAQ,GAAY,OACrB,CACD,GAAI,YAEJ,EAACA,EAAgB,OAAA,CAAA,SAAQ,EAAA,CAAgC,CACzD,EAACA,EAAgB,SAAA,CAAS,GAAI,YAC3B,GAAmB,EACpB,EAAC,EAAA,CACC,KAAK,SACL,IAAK,EACL,WAAY,CACV,WACE,GAAiB,YAAY,4BAC7B,GAA4B,CAC/B,CACD,GAAI,EAEH,YACkB,CAAA,EACI,CAAA,EACX,EAItB,SAAgB,EAAS,CACvB,UACA,eAAe,GACf,eACA,WACA,GAAG,GACa,CAChB,OACE,EAAC,EAAA,CACU,UACK,eACA,eACJ,oBAEV,EAAC,EAAA,CAAgB,GAAI,EAAA,CAAS,EACN,CAI9B,EAAS,QAAUA,EAAgB,QACnC,EAAS,QAAQ,YAAc,mBAC/B,EAAS,OAASA,EAAgB,OAClC,EAAS,OAAO,YAAc,kBAC9B,EAAS,MAAQA,EAAgB,MACjC,EAAS,MAAM,YAAc,iBAC7B,EAAS,OAASA,EAAgB,OAClC,EAAS,OAAO,YAAc,kBAC9B,EAAS,aAAeA,EAAgB,aACxC,EAAS,aAAa,YAAc"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import "@mantine/core";
|
|
2
2
|
import "react/jsx-runtime";
|
|
3
|
+
import { ReactNode } from "react";
|
|
3
4
|
|
|
4
5
|
//#region src/components/controls/dropdown/DropdownContextProvider.d.ts
|
|
5
6
|
type DropdownValue = {
|
|
6
7
|
id: string | number;
|
|
7
8
|
value: string | number | undefined | null;
|
|
9
|
+
render?: ReactNode;
|
|
8
10
|
};
|
|
9
11
|
//#endregion
|
|
10
12
|
export { DropdownValue };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownContextProvider.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DropdownContextProvider.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"mappings":";;;;;KAKY,aAAA;EACV,EAAA;EACA,KAAA;EACA,MAAA,GAAS,SAAA;AAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useCombobox as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";import{createContext as n,useContext as r,useState as i}from"react";const a=n({store:{},value:{id:``,value:``},query:void 0,setValue:()=>{},setQuery:()=>{},options:[]});function o(){let e=r(a);if(!e)throw Error(`useDropdownContext must be used within DropdownContextProvider`);return e}function s({children:n,options:r,shouldFilter:o=!0}){let[
|
|
1
|
+
import{useCombobox as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";import{createContext as n,useContext as r,useState as i}from"react";const a=n({store:{},value:{id:``,value:``},query:void 0,setValue:()=>{},setQuery:()=>{},options:[]});function o(){let e=r(a);if(!e)throw Error(`useDropdownContext must be used within DropdownContextProvider`);return e}function s({children:n,options:r,shouldFilter:o=!0,defaultValue:s,onChange:c}){let[l,u]=i(void 0),[d,f]=i(s??{id:``,value:``}),p=e({scrollBehavior:`smooth`,onDropdownClose:()=>p.resetSelectedOption()}),m=l&&o?r.filter(e=>e.value?.toString().toLowerCase().trim().includes(l?.toLowerCase().trim())):r;return t(a.Provider,{value:{store:p,value:d,setValue:e=>{let t=r.find(t=>t.value===e),n;n=e&&!t?{id:``,value:e}:t??{id:``,value:``},f(n),c?.(n),u(void 0),p.closeDropdown()},query:l,setQuery:u,options:m},children:n})}export{s as DropdownContextProvider,o as useDropdownContext};
|
|
2
2
|
//# sourceMappingURL=DropdownContextProvider.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownContextProvider.mjs","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"sourcesContent":["import { createContext, useContext, useState } from 'react';\n\nimport { type ComboboxStore, useCombobox } from '@mantine/core';\n\nexport type DropdownValue = {\n id: string | number;\n value: string | number | undefined | null;\n};\n\ntype DropdownContextType = {\n store: ComboboxStore;\n value: DropdownValue;\n setValue: (value: string | undefined) => void;\n query: string | undefined;\n setQuery: (query: string | undefined) => void;\n options: DropdownValue[];\n};\n\nconst DropdownContext = createContext<DropdownContextType>({\n store: {} as ComboboxStore,\n value: { id: '', value: '' },\n query: undefined,\n setValue: () => {},\n setQuery: () => {},\n options: [],\n});\n\nexport function useDropdownContext(): DropdownContextType {\n const ctx = useContext(DropdownContext);\n if (!ctx)\n throw new Error(\n 'useDropdownContext must be used within DropdownContextProvider',\n );\n return ctx;\n}\n\nexport function DropdownContextProvider({\n children,\n options,\n shouldFilter = true,\n}: {\n children: React.ReactNode;\n options: DropdownValue[];\n shouldFilter?: boolean;\n}) {\n const [query, setQuery] = useState<string | undefined>(undefined);\n const
|
|
1
|
+
{"version":3,"file":"DropdownContextProvider.mjs","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { createContext, useContext, useState } from 'react';\n\nimport { type ComboboxStore, useCombobox } from '@mantine/core';\n\nexport type DropdownValue = {\n id: string | number;\n value: string | number | undefined | null;\n render?: ReactNode;\n};\n\ntype DropdownContextType = {\n store: ComboboxStore;\n value: DropdownValue;\n setValue: (value: string | undefined) => void;\n query: string | undefined;\n setQuery: (query: string | undefined) => void;\n options: DropdownValue[];\n};\n\nconst DropdownContext = createContext<DropdownContextType>({\n store: {} as ComboboxStore,\n value: { id: '', value: '' },\n query: undefined,\n setValue: () => {},\n setQuery: () => {},\n options: [],\n});\n\nexport function useDropdownContext(): DropdownContextType {\n const ctx = useContext(DropdownContext);\n if (!ctx)\n throw new Error(\n 'useDropdownContext must be used within DropdownContextProvider',\n );\n return ctx;\n}\n\nexport function DropdownContextProvider({\n children,\n options,\n shouldFilter = true,\n defaultValue,\n onChange,\n}: {\n children: React.ReactNode;\n options: DropdownValue[];\n shouldFilter?: boolean;\n defaultValue?: DropdownValue;\n onChange?: (value: DropdownValue) => void;\n}) {\n const [query, setQuery] = useState<string | undefined>(undefined);\n\n const initialValue = defaultValue ?? { id: '', value: '' };\n\n const [value, setValue] = useState<DropdownValue>(initialValue);\n\n const store = useCombobox({\n scrollBehavior: 'smooth',\n onDropdownClose: () => store.resetSelectedOption(),\n });\n\n const filteredOptions =\n query && shouldFilter\n ? options.filter((item) =>\n item.value\n ?.toString()\n .toLowerCase()\n .trim()\n .includes(query?.toLowerCase().trim()),\n )\n : options;\n\n const handleValueChange = (value: string | undefined) => {\n const option = options.find((option) => option.value === value);\n\n let newValue: DropdownValue;\n if (value && !option) {\n newValue = { id: '', value: value };\n } else {\n newValue = option ?? { id: '', value: '' };\n }\n\n setValue(newValue);\n onChange?.(newValue);\n\n setQuery(undefined);\n store.closeDropdown();\n };\n\n return (\n <DropdownContext.Provider\n value={{\n store,\n value,\n setValue: handleValueChange,\n query,\n setQuery,\n options: filteredOptions,\n }}\n >\n {children}\n </DropdownContext.Provider>\n );\n}\n"],"mappings":"wJAoBA,MAAM,EAAkB,EAAmC,CACzD,MAAO,EAAE,CACT,MAAO,CAAE,GAAI,GAAI,MAAO,GAAI,CAC5B,MAAO,IAAA,GACP,aAAgB,GAChB,aAAgB,GAChB,QAAS,EAAE,CACZ,CAAC,CAEF,SAAgB,GAA0C,CACxD,IAAM,EAAM,EAAW,EAAgB,CACvC,GAAI,CAAC,EACH,MAAU,MACR,iEACD,CACH,OAAO,EAGT,SAAgB,EAAwB,CACtC,WACA,UACA,eAAe,GACf,eACA,YAOC,CACD,GAAM,CAAC,EAAO,GAAY,EAA6B,IAAA,GAAU,CAI3D,CAAC,EAAO,GAAY,EAFL,GAAgB,CAAE,GAAI,GAAI,MAAO,GAAI,CAEK,CAEzD,EAAQ,EAAY,CACxB,eAAgB,SAChB,oBAAuB,EAAM,qBAAqB,CACnD,CAAC,CAEI,EACJ,GAAS,EACL,EAAQ,OAAQ,GACd,EAAK,OACD,UAAU,CACX,aAAa,CACb,MAAM,CACN,SAAS,GAAO,aAAa,CAAC,MAAM,CAAC,CACzC,CACD,EAmBN,OACE,EAAC,EAAgB,SAAA,CACf,MAAO,CACL,QACA,QACA,SAtBqB,GAA8B,CACvD,IAAM,EAAS,EAAQ,KAAM,GAAW,EAAO,QAAU,EAAM,CAE3D,EACJ,AAGE,EAHE,GAAS,CAAC,EACD,CAAE,GAAI,GAAW,QAAO,CAExB,GAAU,CAAE,GAAI,GAAI,MAAO,GAAI,CAG5C,EAAS,EAAS,CAClB,IAAW,EAAS,CAEpB,EAAS,IAAA,GAAU,CACnB,EAAM,eAAe,EASjB,QACA,WACA,QAAS,EACV,CAEA,YACwB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useDropdownContext as e}from"../DropdownContextProvider.mjs";import{Dropdown as t}from"../Dropdown.mjs";import{ComboboxCreatableOption as n}from"./ComboboxCreatableOption.mjs";import{ComboboxEmptyOption as r}from"./ComboboxEmptyOption.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({creatableProps:o,emptyProps:s})=>{let{options:c}=e(),{creatable:l}=o,u=c.map(e=>i(t.Option,{id:e.id.toString(),value:e.value?.toString(),onMouseDown:e=>e.preventDefault(),children:e.value?.toString()},e.id));return a(t.Options,{children:[u,l&&i(n,{...o}),!l&&c.length===0&&i(r,{...s})]})};export{o as ComboboxOptions};
|
|
1
|
+
import{useDropdownContext as e}from"../DropdownContextProvider.mjs";import{Dropdown as t}from"../Dropdown.mjs";import{ComboboxCreatableOption as n}from"./ComboboxCreatableOption.mjs";import{ComboboxEmptyOption as r}from"./ComboboxEmptyOption.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({creatableProps:o,emptyProps:s})=>{let{options:c}=e(),{creatable:l}=o,u=c.map(e=>i(t.Option,{id:e.id.toString(),value:e.value?.toString(),onMouseDown:e=>e.preventDefault(),children:e.render??e.value?.toString()},e.id));return a(t.Options,{children:[u,l&&i(n,{...o}),!l&&c.length===0&&i(r,{...s})]})};export{o as ComboboxOptions};
|
|
2
2
|
//# sourceMappingURL=ComboboxOptions.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxOptions.mjs","names":[],"sources":["../../../../../src/components/controls/dropdown/combobox/ComboboxOptions.tsx"],"sourcesContent":["import { Dropdown } from '../Dropdown';\nimport type { DropdownValue } from '../DropdownContextProvider';\nimport { useDropdownContext } from '../DropdownContextProvider';\nimport {\n ComboboxCreatableOption,\n type ComboboxCreatableOptionProps,\n} from './ComboboxCreatableOption';\nimport {\n ComboboxEmptyOption,\n type ComboboxEmptyOptionProps,\n} from './ComboboxEmptyOption';\n\nexport const ComboboxOptions = ({\n creatableProps,\n emptyProps,\n}: {\n creatableProps: ComboboxCreatableOptionProps;\n emptyProps: ComboboxEmptyOptionProps;\n}) => {\n const { options } = useDropdownContext();\n const { creatable } = creatableProps;\n\n const optionsList = options.map((item: DropdownValue) => {\n return (\n <Dropdown.Option\n id={item.id.toString()}\n value={item.value?.toString() as string}\n key={item.id}\n onMouseDown={(e) => e.preventDefault()}\n >\n {item.value?.toString()}\n </Dropdown.Option>\n );\n });\n\n return (\n <Dropdown.Options>\n {optionsList}\n {creatable && <ComboboxCreatableOption {...creatableProps} />}\n {!creatable && options.length === 0 && (\n <ComboboxEmptyOption {...emptyProps} />\n )}\n </Dropdown.Options>\n );\n};\n"],"mappings":"ySAYA,MAAa,GAAmB,CAC9B,iBACA,gBAII,CACJ,GAAM,CAAE,WAAY,GAAoB,CAClC,CAAE,aAAc,EAEhB,EAAc,EAAQ,IAAK,GAE7B,EAAC,EAAS,OAAA,CACR,GAAI,EAAK,GAAG,UAAU,CACtB,MAAO,EAAK,OAAO,UAAU,CAE7B,YAAc,GAAM,EAAE,gBAAgB,UAErC,EAAK,OAAO,UAAU,
|
|
1
|
+
{"version":3,"file":"ComboboxOptions.mjs","names":[],"sources":["../../../../../src/components/controls/dropdown/combobox/ComboboxOptions.tsx"],"sourcesContent":["import { Dropdown } from '../Dropdown';\nimport type { DropdownValue } from '../DropdownContextProvider';\nimport { useDropdownContext } from '../DropdownContextProvider';\nimport {\n ComboboxCreatableOption,\n type ComboboxCreatableOptionProps,\n} from './ComboboxCreatableOption';\nimport {\n ComboboxEmptyOption,\n type ComboboxEmptyOptionProps,\n} from './ComboboxEmptyOption';\n\nexport const ComboboxOptions = ({\n creatableProps,\n emptyProps,\n}: {\n creatableProps: ComboboxCreatableOptionProps;\n emptyProps: ComboboxEmptyOptionProps;\n}) => {\n const { options } = useDropdownContext();\n const { creatable } = creatableProps;\n\n const optionsList = options.map((item: DropdownValue) => {\n return (\n <Dropdown.Option\n id={item.id.toString()}\n value={item.value?.toString() as string}\n key={item.id}\n onMouseDown={(e) => e.preventDefault()}\n >\n {item.render ?? item.value?.toString()}\n </Dropdown.Option>\n );\n });\n\n return (\n <Dropdown.Options>\n {optionsList}\n {creatable && <ComboboxCreatableOption {...creatableProps} />}\n {!creatable && options.length === 0 && (\n <ComboboxEmptyOption {...emptyProps} />\n )}\n </Dropdown.Options>\n );\n};\n"],"mappings":"ySAYA,MAAa,GAAmB,CAC9B,iBACA,gBAII,CACJ,GAAM,CAAE,WAAY,GAAoB,CAClC,CAAE,aAAc,EAEhB,EAAc,EAAQ,IAAK,GAE7B,EAAC,EAAS,OAAA,CACR,GAAI,EAAK,GAAG,UAAU,CACtB,MAAO,EAAK,OAAO,UAAU,CAE7B,YAAc,GAAM,EAAE,gBAAgB,UAErC,EAAK,QAAU,EAAK,OAAO,UAAU,EAHjC,EAAK,GAIM,CAEpB,CAEF,OACE,EAAC,EAAS,QAAA,CAAA,SAAA,CACP,EACA,GAAa,EAAC,EAAA,CAAwB,GAAI,EAAA,CAAkB,CAC5D,CAAC,GAAa,EAAQ,SAAW,GAChC,EAAC,EAAA,CAAoB,GAAI,EAAA,CAAc,GAExB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{IconRaw as e}from"../icon-raw/IconRaw.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{icon as n,iconIconRaw as r,iconIconRawRoot as i,iconRoot as a}from"@mage-ui/styled-system/recipes";import{jsx as o}from"react/jsx-runtime";const s=({path:s,name:c,classNames:l})=>o(`span`,{className:t(l?.icon??n(),l?.root??a()),
|
|
1
|
+
import{IconRaw as e}from"../icon-raw/IconRaw.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{icon as n,iconIconRaw as r,iconIconRawRoot as i,iconRoot as a}from"@mage-ui/styled-system/recipes";import{jsx as o}from"react/jsx-runtime";const s=({path:s,name:c,classNames:l})=>o(`span`,{className:t(l?.icon??n(),l?.root??a()),children:o(e,{classNames:{iconRaw:l?.iconRaw?.iconRaw??r(),root:l?.iconRaw?.root??i()},path:s,name:c})});export{s as Icon};
|
|
2
2
|
//# sourceMappingURL=Icon.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon/Icon.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n type IconVariantProps,\n icon,\n iconIconRaw,\n iconIconRawRoot,\n iconRoot,\n} from '@mage-ui/styled-system/recipes';\nimport { IconRaw } from '@/components/data-display/icons/icon-raw/IconRaw';\n\nexport type IconProps = {\n name: string;\n path: string;\n classNames?: {\n icon?: string;\n root?: string;\n iconRaw?: {\n iconRaw?: string;\n root?: string;\n };\n };\n} & IconVariantProps;\n\nexport const Icon = ({ path, name, classNames }: IconProps): ReactNode => {\n return (\n <span\n className={cx(classNames?.icon ?? icon(), classNames?.root ?? iconRoot())}\n
|
|
1
|
+
{"version":3,"file":"Icon.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon/Icon.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n type IconVariantProps,\n icon,\n iconIconRaw,\n iconIconRawRoot,\n iconRoot,\n} from '@mage-ui/styled-system/recipes';\nimport { IconRaw } from '@/components/data-display/icons/icon-raw/IconRaw';\n\nexport type IconProps = {\n name: string;\n path: string;\n classNames?: {\n icon?: string;\n root?: string;\n iconRaw?: {\n iconRaw?: string;\n root?: string;\n };\n };\n} & IconVariantProps;\n\nexport const Icon = ({ path, name, classNames }: IconProps): ReactNode => {\n return (\n <span\n className={cx(classNames?.icon ?? icon(), classNames?.root ?? iconRoot())}\n >\n <IconRaw\n classNames={{\n iconRaw: classNames?.iconRaw?.iconRaw ?? iconIconRaw(),\n root: classNames?.iconRaw?.root ?? iconIconRawRoot(),\n }}\n path={path}\n name={name}\n />\n </span>\n );\n};\n"],"mappings":"oPAyBA,MAAa,GAAQ,CAAE,OAAM,OAAM,gBAE/B,EAAC,OAAA,CACC,UAAW,EAAG,GAAY,MAAQ,GAAM,CAAE,GAAY,MAAQ,GAAU,CAAC,UAEzE,EAAC,EAAA,CACC,WAAY,CACV,QAAS,GAAY,SAAS,SAAW,GAAa,CACtD,KAAM,GAAY,SAAS,MAAQ,GAAiB,CACrD,CACK,OACA,QACN,EACG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{cx as e}from"@mage-ui/styled-system/css";import{iconRaw as t,iconRawRoot as n}from"@mage-ui/styled-system/recipes";import{jsx as r
|
|
1
|
+
import{cx as e}from"@mage-ui/styled-system/css";import{iconRaw as t,iconRawRoot as n}from"@mage-ui/styled-system/recipes";import{jsx as r}from"react/jsx-runtime";const i=({path:i,name:a,classNames:o,...s})=>r(`svg`,{...s,className:e(o?.iconRaw??t(),o?.root??n(),s.className),"aria-hidden":`true`,focusable:`false`,children:r(`use`,{href:`${i}#${a}`})});export{i as IconRaw};
|
|
2
2
|
//# sourceMappingURL=IconRaw.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconRaw.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon-raw/IconRaw.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport { iconRaw, iconRawRoot } from '@mage-ui/styled-system/recipes';\n\nexport type IconRawProps = ComponentPropsWithoutRef<'svg'> & {\n path: string;\n name: string;\n classNames?: {\n iconRaw?: string;\n root?: string;\n };\n};\n\nexport const IconRaw = ({\n path,\n name,\n classNames,\n ...props\n}: IconRawProps): ReactNode => {\n return (\n <svg\n {...props}\n className={cx(\n classNames?.iconRaw ?? iconRaw(),\n classNames?.root ?? iconRawRoot(),\n props.className,\n )}\n
|
|
1
|
+
{"version":3,"file":"IconRaw.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon-raw/IconRaw.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport { iconRaw, iconRawRoot } from '@mage-ui/styled-system/recipes';\n\nexport type IconRawProps = ComponentPropsWithoutRef<'svg'> & {\n path: string;\n name: string;\n classNames?: {\n iconRaw?: string;\n root?: string;\n };\n};\n\nexport const IconRaw = ({\n path,\n name,\n classNames,\n ...props\n}: IconRawProps): ReactNode => {\n return (\n <svg\n {...props}\n className={cx(\n classNames?.iconRaw ?? iconRaw(),\n classNames?.root ?? iconRawRoot(),\n props.className,\n )}\n aria-hidden='true'\n focusable='false'\n >\n <use href={`${path}#${name}`} />\n </svg>\n );\n};\n"],"mappings":"kKAcA,MAAa,GAAW,CACtB,OACA,OACA,aACA,GAAG,KAGD,EAAC,MAAA,CACC,GAAI,EACJ,UAAW,EACT,GAAY,SAAW,GAAS,CAChC,GAAY,MAAQ,GAAa,CACjC,EAAM,UACP,CACD,cAAY,OACZ,UAAU,iBAEV,EAAC,MAAA,CAAI,KAAM,GAAG,EAAK,GAAG,IAAA,CAAU,EAC5B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{cx as e}from"@mage-ui/styled-system/css";import{iconSvg as t,iconSvgRoot as n,iconSvgSvg as r}from"@mage-ui/styled-system/recipes";import{jsx as i}from"react/jsx-runtime";const a=({classNames:a,children:o,width:s,height:c,viewBox:l})=>i(`span`,{className:e(a?.iconSvg??t(),a?.root??n()),
|
|
1
|
+
import{cx as e}from"@mage-ui/styled-system/css";import{iconSvg as t,iconSvgRoot as n,iconSvgSvg as r}from"@mage-ui/styled-system/recipes";import{jsx as i}from"react/jsx-runtime";const a=({classNames:a,children:o,width:s,height:c,viewBox:l})=>i(`span`,{className:e(a?.iconSvg??t(),a?.root??n()),children:i(`svg`,{className:a?.svg??r(),width:s,height:c,viewBox:l,"aria-hidden":`true`,focusable:`false`,xmlns:`http://www.w3.org/2000/svg`,children:o})});export{a as IconSvg};
|
|
2
2
|
//# sourceMappingURL=IconSvg.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconSvg.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon-svg/IconSvg.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n iconSvg,\n iconSvgRoot,\n iconSvgSvg,\n} from '@mage-ui/styled-system/recipes';\n\nexport type IconSvgProps = {\n classNames?: {\n iconSvg?: string;\n root?: string;\n svg?: string;\n };\n width?: number | string;\n height?: number | string;\n viewBox?: string;\n children: ReactNode;\n};\n\nexport const IconSvg = ({\n classNames,\n children,\n width,\n height,\n viewBox,\n}: IconSvgProps): ReactNode => {\n return (\n <span\n className={cx(\n classNames?.iconSvg ?? iconSvg(),\n classNames?.root ?? iconSvgRoot(),\n )}\n
|
|
1
|
+
{"version":3,"file":"IconSvg.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon-svg/IconSvg.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n iconSvg,\n iconSvgRoot,\n iconSvgSvg,\n} from '@mage-ui/styled-system/recipes';\n\nexport type IconSvgProps = {\n classNames?: {\n iconSvg?: string;\n root?: string;\n svg?: string;\n };\n width?: number | string;\n height?: number | string;\n viewBox?: string;\n children: ReactNode;\n};\n\nexport const IconSvg = ({\n classNames,\n children,\n width,\n height,\n viewBox,\n}: IconSvgProps): ReactNode => {\n return (\n <span\n className={cx(\n classNames?.iconSvg ?? iconSvg(),\n classNames?.root ?? iconSvgRoot(),\n )}\n >\n <svg\n className={classNames?.svg ?? iconSvgSvg()}\n width={width}\n height={height}\n viewBox={viewBox}\n aria-hidden='true'\n focusable='false'\n xmlns='http://www.w3.org/2000/svg'\n >\n {children}\n </svg>\n </span>\n );\n};\n"],"mappings":"kLAqBA,MAAa,GAAW,CACtB,aACA,WACA,QACA,SACA,aAGE,EAAC,OAAA,CACC,UAAW,EACT,GAAY,SAAW,GAAS,CAChC,GAAY,MAAQ,GAAa,CAClC,UAED,EAAC,MAAA,CACC,UAAW,GAAY,KAAO,GAAY,CACnC,QACC,SACC,UACT,cAAY,OACZ,UAAU,QACV,MAAM,6BAEL,YACG,EACD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{addCardPlaceholder as e,getAddCardPlaceholderKey as t}from"./kanbanUtils.mjs";import{KanbanCard as n}from"./KanbanCard.mjs";import{KanbanCardAdder as r}from"./KanbanCardAdder.mjs";import{KanbanCardDragIndicator as i}from"./KanbanCardDragIndicator.mjs";import{KanbanColumnHeader as a}from"./KanbanColumnHeader.mjs";import{KanbanListFooter as o}from"./KanbanListFooter.mjs";import{cx as s}from"@mage-ui/styled-system/css";import{kanban as c,kanbanColumn as l,kanbanRoot as u,kanbanWrapperColumn as d}from"@mage-ui/styled-system/recipes";import{jsx as f}from"react/jsx-runtime";import{useState as p}from"react";import{Kanban as m,dropHandler as h}from"react-kanban-kit";const g=({dataSource:g,configMap:_,onCardMove:v,classNames:y})=>{let[b,x]=p(g);return f(m,{dataSource:b,configMap:_??{card:{render:({data:e})=>f(n,{data:e}),isDraggable:!0},"new-card":{render:({column:e,data:t})=>f(r,{columnId:e.id,dataSource:b,setDataSource:x,inTop:t?.content?.inTop??!0}),isDraggable:!1}},renderColumnHeader:e=>f(a,{column:e}),renderCardDragIndicator:()=>f(i,{}),rootClassName:s(y?.kanban??c(),y?.root??u(),`group`),columnWrapperClassName:()=>y?.columnWrapper??d(),columnClassName:()=>y?.column??l(),renderListFooter:t=>f(o,{onAddTask:()=>x(e(t.id,b,!1))}),allowListFooter:e=>!e.children.includes(t(e.id)),onCardMove:e=>{x(t=>h(e,structuredClone(t),()=>{},e=>({...e,totalChildrenCount:(e.totalChildrenCount||0)+1}),e=>({...e,totalChildrenCount:(e.totalChildrenCount||0)-1}))),v?.(e)}})};export{g as Kanban};
|
|
2
2
|
//# sourceMappingURL=Kanban.mjs.map
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AvatarProps } from "../avatar/Avatar.mjs";
|
|
2
|
+
import { BadgeProps } from "../badge/Badge.mjs";
|
|
1
3
|
import { BoardItem } from "./Kanban.mjs";
|
|
2
4
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
5
|
|
|
@@ -10,6 +12,8 @@ interface KanbanCardProps {
|
|
|
10
12
|
cardTitle?: string;
|
|
11
13
|
cardDescription?: string;
|
|
12
14
|
cardSection?: string;
|
|
15
|
+
avatar?: AvatarProps['classNames'];
|
|
16
|
+
badge?: BadgeProps['classNames'];
|
|
13
17
|
};
|
|
14
18
|
}
|
|
15
19
|
declare const KanbanCard: ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanCard.d.mts","names":[],"sources":["../../../../src/components/data-display/kanban/KanbanCard.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"KanbanCard.d.mts","names":[],"sources":["../../../../src/components/data-display/kanban/KanbanCard.tsx"],"mappings":";;;;;;UAsBiB,eAAA;EACf,IAAA,EAAM,SAAA;EACN,UAAA;IACE,IAAA;IACA,QAAA;IACA,SAAA;IACA,eAAA;IACA,WAAA;IACA,MAAA,GAAS,WAAA;IACT,KAAA,GAAQ,UAAA;EAAA;AAAA;AAAA,cAIC,UAAA;EAAc,IAAA;EAAA;AAAA,GAAsB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Avatar as e}from"../avatar/Avatar.mjs";import{Badge as t}from"../badge/Badge.mjs";import{
|
|
1
|
+
import{Avatar as e}from"../avatar/Avatar.mjs";import{Badge as t}from"../badge/Badge.mjs";import{getPriorityColor as n}from"./kanbanUtils.mjs";import{cx as r}from"@mage-ui/styled-system/css";import{kanbanCard as i,kanbanCardAvatar as a,kanbanCardAvatarImage as o,kanbanCardAvatarPlaceholder as s,kanbanCardAvatarRoot as c,kanbanCardBadge as l,kanbanCardBadgeLabel as u,kanbanCardBadgeRoot as d,kanbanCardBadgeSection as f,kanbanCardDescription as p,kanbanCardRoot as m,kanbanCardSection as h,kanbanCardTitle as g}from"@mage-ui/styled-system/recipes";import{jsx as _,jsxs as v}from"react/jsx-runtime";const y=({data:y,classNames:b})=>v(`div`,{className:r(b?.card??i(),b?.cardRoot??m()),children:[_(`p`,{className:r(b?.cardTitle??g()),children:y.title}),y.content?.description&&_(`p`,{className:r(b?.cardDescription??p()),children:y.content.description}),v(`div`,{className:b?.cardSection??h(),children:[y.content?.assignee&&_(e,{name:y.content?.assignee,classNames:{avatar:b?.avatar?.avatar??a(),root:b?.avatar?.root??c(),image:b?.avatar?.image??o(),placeholder:b?.avatar?.placeholder??s()}}),y.content?.priority&&_(t,{classNames:{badge:b?.badge?.badge??l(),root:b?.badge?.root??d({priority:n(y.content?.priority)}),section:b?.badge?.section??f(),label:b?.badge?.label??u()},children:y.content?.priority})]})]});export{y as KanbanCard};
|
|
2
2
|
//# sourceMappingURL=KanbanCard.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanCard.mjs","names":[],"sources":["../../../../src/components/data-display/kanban/KanbanCard.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport {\n kanbanCard,\n kanbanCardDescription,\n kanbanCardRoot,\n kanbanCardSection,\n kanbanCardTitle,\n} from '@mage-ui/styled-system/recipes';\n\nimport { Avatar } from '../avatar/Avatar';\nimport { Badge } from '../badge/Badge';\nimport type { BoardItem } from './Kanban';\n\nexport interface KanbanCardProps {\n data: BoardItem;\n classNames?: {\n card?: string;\n cardRoot?: string;\n cardTitle?: string;\n cardDescription?: string;\n cardSection?: string;\n };\n}\n\nexport const KanbanCard = ({ data, classNames }: KanbanCardProps) => {\n return (\n <div\n className={cx(\n classNames?.card ?? kanbanCard(),\n classNames?.cardRoot ?? kanbanCardRoot(),\n )}\n >\n <p className={cx(classNames?.cardTitle ?? kanbanCardTitle())}>\n {data.title}\n </p>\n {data.content?.description && (\n <p\n className={cx(classNames?.cardDescription ?? kanbanCardDescription())}\n >\n {data.content.description}\n </p>\n )}\n <div className={classNames?.cardSection ?? kanbanCardSection()}>\n {data.content?.assignee && <Avatar
|
|
1
|
+
{"version":3,"file":"KanbanCard.mjs","names":[],"sources":["../../../../src/components/data-display/kanban/KanbanCard.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport {\n kanbanCard,\n kanbanCardAvatar,\n kanbanCardAvatarImage,\n kanbanCardAvatarPlaceholder,\n kanbanCardAvatarRoot,\n kanbanCardBadge,\n kanbanCardBadgeLabel,\n kanbanCardBadgeRoot,\n kanbanCardBadgeSection,\n kanbanCardDescription,\n kanbanCardRoot,\n kanbanCardSection,\n kanbanCardTitle,\n} from '@mage-ui/styled-system/recipes';\n\nimport { Avatar, type AvatarProps } from '../avatar/Avatar';\nimport { Badge, type BadgeProps } from '../badge/Badge';\nimport type { BoardItem } from './Kanban';\nimport { getPriorityColor } from './kanbanUtils';\n\nexport interface KanbanCardProps {\n data: BoardItem;\n classNames?: {\n card?: string;\n cardRoot?: string;\n cardTitle?: string;\n cardDescription?: string;\n cardSection?: string;\n avatar?: AvatarProps['classNames'];\n badge?: BadgeProps['classNames'];\n };\n}\n\nexport const KanbanCard = ({ data, classNames }: KanbanCardProps) => {\n return (\n <div\n className={cx(\n classNames?.card ?? kanbanCard(),\n classNames?.cardRoot ?? kanbanCardRoot(),\n )}\n >\n <p className={cx(classNames?.cardTitle ?? kanbanCardTitle())}>\n {data.title}\n </p>\n {data.content?.description && (\n <p\n className={cx(classNames?.cardDescription ?? kanbanCardDescription())}\n >\n {data.content.description}\n </p>\n )}\n <div className={classNames?.cardSection ?? kanbanCardSection()}>\n {data.content?.assignee && (\n <Avatar\n name={data.content?.assignee}\n classNames={{\n avatar: classNames?.avatar?.avatar ?? kanbanCardAvatar(),\n root: classNames?.avatar?.root ?? kanbanCardAvatarRoot(),\n image: classNames?.avatar?.image ?? kanbanCardAvatarImage(),\n placeholder:\n classNames?.avatar?.placeholder ??\n kanbanCardAvatarPlaceholder(),\n }}\n />\n )}\n {data.content?.priority && (\n <Badge\n classNames={{\n badge: classNames?.badge?.badge ?? kanbanCardBadge(),\n root:\n classNames?.badge?.root ??\n kanbanCardBadgeRoot({\n priority: getPriorityColor(data.content?.priority),\n }),\n section: classNames?.badge?.section ?? kanbanCardBadgeSection(),\n label: classNames?.badge?.label ?? kanbanCardBadgeLabel(),\n }}\n >\n {data.content?.priority}\n </Badge>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"ulBAmCA,MAAa,GAAc,CAAE,OAAM,gBAE/B,EAAC,MAAA,CACC,UAAW,EACT,GAAY,MAAQ,GAAY,CAChC,GAAY,UAAY,GAAgB,CACzC,WAED,EAAC,IAAA,CAAE,UAAW,EAAG,GAAY,WAAa,GAAiB,CAAC,UACzD,EAAK,OACJ,CACH,EAAK,SAAS,aACb,EAAC,IAAA,CACC,UAAW,EAAG,GAAY,iBAAmB,GAAuB,CAAC,UAEpE,EAAK,QAAQ,aACZ,CAEN,EAAC,MAAA,CAAI,UAAW,GAAY,aAAe,GAAmB,WAC3D,EAAK,SAAS,UACb,EAAC,EAAA,CACC,KAAM,EAAK,SAAS,SACpB,WAAY,CACV,OAAQ,GAAY,QAAQ,QAAU,GAAkB,CACxD,KAAM,GAAY,QAAQ,MAAQ,GAAsB,CACxD,MAAO,GAAY,QAAQ,OAAS,GAAuB,CAC3D,YACE,GAAY,QAAQ,aACpB,GAA6B,CAChC,EACD,CAEH,EAAK,SAAS,UACb,EAAC,EAAA,CACC,WAAY,CACV,MAAO,GAAY,OAAO,OAAS,GAAiB,CACpD,KACE,GAAY,OAAO,MACnB,EAAoB,CAClB,SAAU,EAAiB,EAAK,SAAS,SAAS,CACnD,CAAC,CACJ,QAAS,GAAY,OAAO,SAAW,GAAwB,CAC/D,MAAO,GAAY,OAAO,OAAS,GAAsB,CAC1D,UAEA,EAAK,SAAS,UACT,CAAA,EAEN,GACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Button as e}from"../../buttons/button/Button.mjs";import{
|
|
1
|
+
import{Button as e}from"../../buttons/button/Button.mjs";import{addCard as t,removeCardPlaceholder as n}from"./kanbanUtils.mjs";import{TextInput as r}from"../../controls/text-input/TextInput.mjs";import{cx as i}from"@mage-ui/styled-system/css";import{kanbanCardAdder as a,kanbanCardAdderButtonAdd as o,kanbanCardAdderButtonAddInner as s,kanbanCardAdderButtonAddLabel as c,kanbanCardAdderButtonAddRoot as l,kanbanCardAdderButtonAddSection as u,kanbanCardAdderButtonCancel as d,kanbanCardAdderButtonCancelInner as f,kanbanCardAdderButtonCancelLabel as p,kanbanCardAdderButtonCancelRoot as m,kanbanCardAdderButtonCancelSection as h,kanbanCardAdderButtonWrapper as g,kanbanCardAdderRoot as _,kanbanCardAdderTextInput as v,kanbanCardAdderTextInputDescription as y,kanbanCardAdderTextInputError as b,kanbanCardAdderTextInputInput as x,kanbanCardAdderTextInputLabel as S,kanbanCardAdderTextInputRequired as C,kanbanCardAdderTextInputRoot as w,kanbanCardAdderTextInputSection as T,kanbanCardAdderTextInputWrapper as E}from"@mage-ui/styled-system/recipes";import{jsx as D,jsxs as O}from"react/jsx-runtime";import{useState as k}from"react";import{visuallyHidden as A}from"@mage-ui/styled-system/patterns";const j=({columnId:j,dataSource:M,setDataSource:N,inTop:P,inputLabel:F=`Task Title`,inputPlaceholder:I=`Enter task title`,addLabel:L=`Add Task`,cancelLabel:R=`Cancel`,classNames:z})=>{let[B,V]=k(``),H=e=>{N(n(e,M))},U=(e,n)=>{n.trim()&&N(t(e,M,n,P))};return O(`div`,{className:i(z?.cardAdder??a(),z?.root??_()),children:[D(r,{label:F,value:B,onChange:e=>V(e.currentTarget.value),placeholder:I,onKeyDown:e=>{e.key===`Enter`?U(j,B):e.key===`Escape`&&H(j)},classNames:{textInput:z?.textInput??v(),root:z?.root??w(),label:z?.label??i(S(),A()),description:z?.description??y(),error:z?.error??b(),wrapper:z?.wrapper??E(),input:z?.input??x(),section:z?.section??T(),required:z?.required??C()}}),O(`div`,{className:z?.buttonWrapper??g(),children:[D(e,{type:`button`,onClick:()=>H(j),classNames:{button:z?.cancelButton?.button??d(),root:z?.cancelButton?.root??m(),inner:z?.cancelButton?.inner??f(),label:z?.cancelButton?.label??p(),section:z?.cancelButton?.section??h()},children:R}),D(e,{type:`button`,onClick:()=>U(j,B),classNames:{button:z?.addButton?.button??o(),root:z?.addButton?.root??l(),inner:z?.addButton?.inner??s(),label:z?.addButton?.label??c(),section:z?.addButton?.section??u()},children:L})]})]})};export{j as KanbanCardAdder};
|
|
2
2
|
//# sourceMappingURL=KanbanCardAdder.mjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=e=>`add-card-${e}`,t=(t,n,r=!0)=>{let i=e(t);return n[t].children.includes(i)?n:{...n,[t]:{...n[t],totalChildrenCount:n[t].totalChildrenCount+1,children:r?[i,...n[t].children]:[...n[t].children,i]},[i]:{id:i,title:`Add card`,parentId:t,children:[],totalChildrenCount:0,type:`new-card`,isDraggable:!1,content:{inTop:r,id:i}}}},n=(t,n)=>{let r=e(t),i={...n};return delete i[r],{...i,[t]:{...n[t],totalChildrenCount:n[t].totalChildrenCount-1,children:n[t].children.filter(e=>e!==r)}}},r=(e,t,r,i=!0)=>{let a=`card-${crypto.randomUUID()}`,o=n(e,t);return{...o,[e]:{...o[e],totalChildrenCount:o[e].totalChildrenCount+1,children:i?[a,...o[e].children]:[...o[e].children,a]},[a]:{id:a,title:r,parentId:e,children:[],totalChildrenCount:0,type:`card`}}};export{r as addCard,t as addCardPlaceholder,e as getAddCardPlaceholderKey,n as removeCardPlaceholder};
|
|
1
|
+
const e=e=>`add-card-${e}`,t=(t,n,r=!0)=>{let i=e(t);return n[t].children.includes(i)?n:{...n,[t]:{...n[t],totalChildrenCount:n[t].totalChildrenCount+1,children:r?[i,...n[t].children]:[...n[t].children,i]},[i]:{id:i,title:`Add card`,parentId:t,children:[],totalChildrenCount:0,type:`new-card`,isDraggable:!1,content:{inTop:r,id:i}}}},n=(t,n)=>{let r=e(t),i={...n};return delete i[r],{...i,[t]:{...n[t],totalChildrenCount:n[t].totalChildrenCount-1,children:n[t].children.filter(e=>e!==r)}}},r=(e,t,r,i=!0)=>{let a=`card-${crypto.randomUUID()}`,o=n(e,t);return{...o,[e]:{...o[e],totalChildrenCount:o[e].totalChildrenCount+1,children:i?[a,...o[e].children]:[...o[e].children,a]},[a]:{id:a,title:r,parentId:e,children:[],totalChildrenCount:0,type:`card`}}},i=e=>e;export{r as addCard,t as addCardPlaceholder,e as getAddCardPlaceholderKey,i as getPriorityColor,n as removeCardPlaceholder};
|
|
2
2
|
//# sourceMappingURL=kanbanUtils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanbanUtils.mjs","names":[],"sources":["../../../../src/components/data-display/kanban/kanbanUtils.ts"],"sourcesContent":["import type { BoardData } from './Kanban';\n\nexport const getAddCardPlaceholderKey = (columnId: string) =>\n `add-card-${columnId}`;\n\nexport const addCardPlaceholder = (\n columnId: string,\n dataSource: BoardData,\n inTop = true,\n): BoardData => {\n const placeholderKey = getAddCardPlaceholderKey(columnId);\n const alreadyExists = dataSource[columnId].children.includes(placeholderKey);\n\n if (alreadyExists) return dataSource;\n\n return {\n ...dataSource,\n [columnId]: {\n ...dataSource[columnId],\n totalChildrenCount: dataSource[columnId].totalChildrenCount + 1,\n children: inTop\n ? [placeholderKey, ...dataSource[columnId].children]\n : [...dataSource[columnId].children, placeholderKey],\n },\n [placeholderKey]: {\n id: placeholderKey,\n title: 'Add card',\n parentId: columnId,\n children: [],\n totalChildrenCount: 0,\n type: 'new-card',\n isDraggable: false,\n content: {\n inTop,\n id: placeholderKey,\n },\n },\n } as BoardData;\n};\n\nexport const removeCardPlaceholder = (\n columnId: string,\n dataSource: BoardData,\n): BoardData => {\n const placeholderKey = getAddCardPlaceholderKey(columnId);\n const updated = { ...dataSource };\n delete updated[placeholderKey];\n return {\n ...updated,\n [columnId]: {\n ...dataSource[columnId],\n totalChildrenCount: dataSource[columnId].totalChildrenCount - 1,\n children: dataSource[columnId].children.filter(\n (id) => id !== placeholderKey,\n ),\n },\n };\n};\n\nexport const addCard = (\n columnId: string,\n dataSource: BoardData,\n title: string,\n inTop = true,\n): BoardData => {\n const newCardId = `card-${crypto.randomUUID()}`;\n const withoutPlaceholder = removeCardPlaceholder(columnId, dataSource);\n\n return {\n ...withoutPlaceholder,\n [columnId]: {\n ...withoutPlaceholder[columnId],\n totalChildrenCount: withoutPlaceholder[columnId].totalChildrenCount + 1,\n children: inTop\n ? [newCardId, ...withoutPlaceholder[columnId].children]\n : [...withoutPlaceholder[columnId].children, newCardId],\n },\n [newCardId]: {\n id: newCardId,\n title,\n parentId: columnId,\n children: [],\n totalChildrenCount: 0,\n type: 'card',\n },\n } as BoardData;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"kanbanUtils.mjs","names":[],"sources":["../../../../src/components/data-display/kanban/kanbanUtils.ts"],"sourcesContent":["import type { KanbanCardBadgeRootVariantProps } from '@mage-ui/styled-system/recipes';\n\nimport type { BoardData } from './Kanban';\n\nexport type KanbanPriorityColor = NonNullable<\n KanbanCardBadgeRootVariantProps['priority']\n>;\n\nexport const getAddCardPlaceholderKey = (columnId: string) =>\n `add-card-${columnId}`;\n\nexport const addCardPlaceholder = (\n columnId: string,\n dataSource: BoardData,\n inTop = true,\n): BoardData => {\n const placeholderKey = getAddCardPlaceholderKey(columnId);\n const alreadyExists = dataSource[columnId].children.includes(placeholderKey);\n\n if (alreadyExists) return dataSource;\n\n return {\n ...dataSource,\n [columnId]: {\n ...dataSource[columnId],\n totalChildrenCount: dataSource[columnId].totalChildrenCount + 1,\n children: inTop\n ? [placeholderKey, ...dataSource[columnId].children]\n : [...dataSource[columnId].children, placeholderKey],\n },\n [placeholderKey]: {\n id: placeholderKey,\n title: 'Add card',\n parentId: columnId,\n children: [],\n totalChildrenCount: 0,\n type: 'new-card',\n isDraggable: false,\n content: {\n inTop,\n id: placeholderKey,\n },\n },\n } as BoardData;\n};\n\nexport const removeCardPlaceholder = (\n columnId: string,\n dataSource: BoardData,\n): BoardData => {\n const placeholderKey = getAddCardPlaceholderKey(columnId);\n const updated = { ...dataSource };\n delete updated[placeholderKey];\n return {\n ...updated,\n [columnId]: {\n ...dataSource[columnId],\n totalChildrenCount: dataSource[columnId].totalChildrenCount - 1,\n children: dataSource[columnId].children.filter(\n (id) => id !== placeholderKey,\n ),\n },\n };\n};\n\nexport const addCard = (\n columnId: string,\n dataSource: BoardData,\n title: string,\n inTop = true,\n): BoardData => {\n const newCardId = `card-${crypto.randomUUID()}`;\n const withoutPlaceholder = removeCardPlaceholder(columnId, dataSource);\n\n return {\n ...withoutPlaceholder,\n [columnId]: {\n ...withoutPlaceholder[columnId],\n totalChildrenCount: withoutPlaceholder[columnId].totalChildrenCount + 1,\n children: inTop\n ? [newCardId, ...withoutPlaceholder[columnId].children]\n : [...withoutPlaceholder[columnId].children, newCardId],\n },\n [newCardId]: {\n id: newCardId,\n title,\n parentId: columnId,\n children: [],\n totalChildrenCount: 0,\n type: 'card',\n },\n } as BoardData;\n};\n\nexport const getPriorityColor = (priority?: string) =>\n priority as KanbanPriorityColor;\n"],"mappings":"AAQA,MAAa,EAA4B,GACvC,YAAY,IAED,GACX,EACA,EACA,EAAQ,KACM,CACd,IAAM,EAAiB,EAAyB,EAAS,CAKzD,OAJsB,EAAW,GAAU,SAAS,SAAS,EAAe,CAElD,EAEnB,CACL,GAAG,GACF,GAAW,CACV,GAAG,EAAW,GACd,mBAAoB,EAAW,GAAU,mBAAqB,EAC9D,SAAU,EACN,CAAC,EAAgB,GAAG,EAAW,GAAU,SAAS,CAClD,CAAC,GAAG,EAAW,GAAU,SAAU,EAAe,CACvD,EACA,GAAiB,CAChB,GAAI,EACJ,MAAO,WACP,SAAU,EACV,SAAU,EAAE,CACZ,mBAAoB,EACpB,KAAM,WACN,YAAa,GACb,QAAS,CACP,QACA,GAAI,EACL,CACF,CACF,EAGU,GACX,EACA,IACc,CACd,IAAM,EAAiB,EAAyB,EAAS,CACnD,EAAU,CAAE,GAAG,EAAY,CAEjC,OADA,OAAO,EAAQ,GACR,CACL,GAAG,GACF,GAAW,CACV,GAAG,EAAW,GACd,mBAAoB,EAAW,GAAU,mBAAqB,EAC9D,SAAU,EAAW,GAAU,SAAS,OACrC,GAAO,IAAO,EAChB,CACF,CACF,EAGU,GACX,EACA,EACA,EACA,EAAQ,KACM,CACd,IAAM,EAAY,QAAQ,OAAO,YAAY,GACvC,EAAqB,EAAsB,EAAU,EAAW,CAEtE,MAAO,CACL,GAAG,GACF,GAAW,CACV,GAAG,EAAmB,GACtB,mBAAoB,EAAmB,GAAU,mBAAqB,EACtE,SAAU,EACN,CAAC,EAAW,GAAG,EAAmB,GAAU,SAAS,CACrD,CAAC,GAAG,EAAmB,GAAU,SAAU,EAAU,CAC1D,EACA,GAAY,CACX,GAAI,EACJ,QACA,SAAU,EACV,SAAU,EAAE,CACZ,mBAAoB,EACpB,KAAM,OACP,CACF,EAGU,EAAoB,GAC/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mage-ui/components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.69",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [],
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"rimraf": "^6.1.3",
|
|
26
26
|
"tsdown": "^0.20.3",
|
|
27
27
|
"typescript": "^5.9.3",
|
|
28
|
-
"@mage-ui/
|
|
29
|
-
"@mage-ui/
|
|
28
|
+
"@mage-ui/preset": "1.0.69",
|
|
29
|
+
"@mage-ui/styled-system": "1.0.8"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@ebay/nice-modal-react": "^1.2.13",
|