@luoluoyu/fluentui-plus 0.1.4 → 0.3.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.
Files changed (64) hide show
  1. package/README.md +21 -11
  2. package/dist/.storybook/decorators.d.ts +14 -0
  3. package/dist/.storybook/decorators.d.ts.map +1 -0
  4. package/dist/.storybook/main.d.ts +4 -0
  5. package/dist/.storybook/main.d.ts.map +1 -0
  6. package/dist/.storybook/preview.d.ts +4 -0
  7. package/dist/.storybook/preview.d.ts.map +1 -0
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.esm.js +4921 -748
  10. package/dist/index.esm.js.map +1 -1
  11. package/dist/src/components/InputTag/Input.d.ts +5 -0
  12. package/dist/src/components/InputTag/Input.d.ts.map +1 -0
  13. package/dist/src/components/InputTag/InputTag.d.ts +6 -0
  14. package/dist/src/components/InputTag/InputTag.d.ts.map +1 -0
  15. package/dist/src/components/InputTag/TagList.d.ts +5 -0
  16. package/dist/src/components/InputTag/TagList.d.ts.map +1 -0
  17. package/dist/src/components/InputTag/hooks/index.d.ts +5 -0
  18. package/dist/src/components/InputTag/hooks/index.d.ts.map +1 -0
  19. package/dist/src/components/InputTag/hooks/useInputHandlers.d.ts +21 -0
  20. package/dist/src/components/InputTag/hooks/useInputHandlers.d.ts.map +1 -0
  21. package/dist/src/components/InputTag/hooks/useInputTag.d.ts +16 -0
  22. package/dist/src/components/InputTag/hooks/useInputTag.d.ts.map +1 -0
  23. package/dist/src/components/InputTag/index.d.ts +3 -0
  24. package/dist/src/components/InputTag/index.d.ts.map +1 -0
  25. package/dist/src/components/InputTag/types.d.ts +49 -0
  26. package/dist/src/components/InputTag/types.d.ts.map +1 -0
  27. package/dist/src/components/Nav/Nav.d.ts +6 -0
  28. package/dist/src/components/Nav/Nav.d.ts.map +1 -0
  29. package/dist/src/components/Nav/NavItem.d.ts +5 -0
  30. package/dist/src/components/Nav/NavItem.d.ts.map +1 -0
  31. package/dist/src/components/Nav/NavSubmenu.d.ts +9 -0
  32. package/dist/src/components/Nav/NavSubmenu.d.ts.map +1 -0
  33. package/dist/src/components/Nav/hooks/index.d.ts +2 -0
  34. package/dist/src/components/Nav/hooks/index.d.ts.map +1 -0
  35. package/dist/src/components/Nav/hooks/useNavigation.d.ts +25 -0
  36. package/dist/src/components/Nav/hooks/useNavigation.d.ts.map +1 -0
  37. package/dist/src/components/Nav/index.d.ts +3 -0
  38. package/dist/src/components/Nav/index.d.ts.map +1 -0
  39. package/dist/src/components/Nav/types.d.ts +43 -0
  40. package/dist/src/components/Nav/types.d.ts.map +1 -0
  41. package/dist/src/components/Nav/utils.d.ts +43 -0
  42. package/dist/src/components/Nav/utils.d.ts.map +1 -0
  43. package/dist/src/components/Tag/CheckableTag.d.ts +6 -0
  44. package/dist/src/components/Tag/CheckableTag.d.ts.map +1 -0
  45. package/dist/src/components/Tag/Tag.d.ts +9 -0
  46. package/dist/src/components/Tag/Tag.d.ts.map +1 -0
  47. package/dist/src/components/Tag/index.d.ts.map +1 -0
  48. package/dist/{components/Tag/Tag.d.ts → src/components/Tag/types.d.ts} +4 -6
  49. package/dist/src/components/Tag/types.d.ts.map +1 -0
  50. package/dist/src/components/index.d.ts +7 -0
  51. package/dist/src/components/index.d.ts.map +1 -0
  52. package/dist/src/index.d.ts +2 -0
  53. package/dist/src/index.d.ts.map +1 -0
  54. package/dist/style.css +1 -1
  55. package/package.json +14 -2
  56. package/dist/components/Tag/CheckableTag.d.ts +0 -9
  57. package/dist/components/Tag/CheckableTag.d.ts.map +0 -1
  58. package/dist/components/Tag/Tag.d.ts.map +0 -1
  59. package/dist/components/Tag/index.d.ts.map +0 -1
  60. package/dist/components/index.d.ts +0 -3
  61. package/dist/components/index.d.ts.map +0 -1
  62. package/dist/index.d.ts.map +0 -1
  63. /package/dist/{components → src/components}/Tag/index.d.ts +0 -0
  64. /package/dist/{types → src/types}/less.d.ts +0 -0
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { InputProps } from './types';
3
+ declare const Input: React.FC<InputProps>;
4
+ export default Input;
5
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAyB/B,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { InputTagProps } from './types';
3
+ declare const InputTag: React.FC<InputTagProps>;
4
+ export default InputTag;
5
+ export type { InputTagProps };
6
+ //# sourceMappingURL=InputTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputTag.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/InputTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAK9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,cAAc,CAAC;AAItB,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkHrC,CAAC;AAEF,eAAe,QAAQ,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { TagListProps } from './types';
3
+ declare const TagList: React.FC<TagListProps>;
4
+ export default TagList;
5
+ //# sourceMappingURL=TagList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagList.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/TagList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAkCnC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { useInputTag } from './useInputTag';
2
+ export { useInputHandlers } from './useInputHandlers';
3
+ export type { UseInputTagProps } from './useInputTag';
4
+ export type { UseInputHandlersProps } from './useInputHandlers';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/InputTag/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ export interface UseInputHandlersProps {
3
+ onInputChange?: (value: string) => void;
4
+ addTag: (tag: string) => boolean;
5
+ removeTag: (index: number) => boolean;
6
+ addMultipleTags: (tags: string[]) => number;
7
+ getCurrentTags: () => string[];
8
+ isDeleting: boolean;
9
+ delimiter?: string | RegExp;
10
+ }
11
+ export declare const useInputHandlers: ({ onInputChange, addTag, removeTag, addMultipleTags, getCurrentTags, isDeleting, delimiter, }: UseInputHandlersProps) => {
12
+ inputValue: string;
13
+ isFocused: boolean;
14
+ setIsFocused: React.Dispatch<React.SetStateAction<boolean>>;
15
+ handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
16
+ handleKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
17
+ handlePaste: (e: React.ClipboardEvent<HTMLInputElement>) => void;
18
+ handleContainerBlur: (e: React.FocusEvent<HTMLDivElement>) => void;
19
+ handleInputBlur: (_: React.FocusEvent<HTMLInputElement>) => void;
20
+ };
21
+ //# sourceMappingURL=useInputHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInputHandlers.d.ts","sourceRoot":"","sources":["../../../../../src/components/InputTag/hooks/useInputHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAC5C,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,gBAAgB,GAAI,+FAQ9B,qBAAqB;;;;2BAKhB,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;uBA+CnC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;qBAcrC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;6BA0BtC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;yBAcE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;CAc3E,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface UseInputTagProps {
2
+ value?: string[];
3
+ defaultValue?: string[];
4
+ onChange?: (tags: string[]) => void;
5
+ maxTags?: number;
6
+ allowDuplicates?: boolean;
7
+ onTagRemove?: (tag: string, index: number) => void;
8
+ }
9
+ export declare const useInputTag: ({ value, defaultValue, onChange, maxTags, allowDuplicates, onTagRemove, }: UseInputTagProps) => {
10
+ getCurrentTags: () => string[];
11
+ addTag: (tag: string) => boolean;
12
+ removeTag: (indexToRemove: number) => boolean;
13
+ addMultipleTags: (tags: string[]) => number;
14
+ isDeleting: boolean;
15
+ };
16
+ //# sourceMappingURL=useInputTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInputTag.d.ts","sourceRoot":"","sources":["../../../../../src/components/InputTag/hooks/useInputTag.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,eAAO,MAAM,WAAW,GAAI,2EAOzB,gBAAgB;;kBAYT,MAAM;+BA2BI,MAAM;4BAiCf,MAAM,EAAE;;CAkClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as InputTag } from './InputTag';
2
+ export type { InputTagProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGjD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { default as React } from 'react';
2
+ interface BaseInputTagProps {
3
+ /** 输入框占位符 */
4
+ placeholder?: string;
5
+ /** 是否禁用 */
6
+ disabled?: boolean;
7
+ /** 自定义样式类名 */
8
+ className?: string;
9
+ /** 自定义内联样式 */
10
+ style?: React.CSSProperties;
11
+ }
12
+ interface BaseTagProps {
13
+ /** 标签是否可关闭 */
14
+ tagClosable?: boolean;
15
+ /** 自定义标签渲染 */
16
+ renderTag?: (tag: string, index: number, onClose: () => void) => React.ReactNode;
17
+ /** 标签被移除时的回调 */
18
+ onTagRemove?: (tag: string, index: number) => void;
19
+ }
20
+ export interface InputProps extends BaseInputTagProps {
21
+ value: string;
22
+ inputRef: React.RefObject<HTMLInputElement>;
23
+ onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
24
+ onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
25
+ onFocus: () => void;
26
+ onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
27
+ onPaste: (e: React.ClipboardEvent<HTMLInputElement>) => void;
28
+ }
29
+ export interface TagListProps extends Omit<BaseInputTagProps, 'placeholder'>, BaseTagProps {
30
+ tags: string[];
31
+ }
32
+ export interface InputTagProps extends BaseInputTagProps, BaseTagProps {
33
+ /** 受控模式的标签值 */
34
+ value?: string[];
35
+ /** 非受控模式的默认标签值 */
36
+ defaultValue?: string[];
37
+ /** 标签列表变化时的回调 */
38
+ onChange?: (tags: string[]) => void;
39
+ /** 输入内容变化时的回调 */
40
+ onInputChange?: (value: string) => void;
41
+ /** 最大标签数量 */
42
+ maxTags?: number;
43
+ /** 是否允许重复标签 */
44
+ allowDuplicates?: boolean;
45
+ /** 自定义分隔符,支持字符串或正则表达式,用于自动分割输入内容为标签 */
46
+ delimiter?: string | RegExp;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,iBAAiB;IACzB,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAGD,UAAU,YAAY;IACpB,cAAc;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc;IACd,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF,gBAAgB;IAChB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAGD,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC9D;AAGD,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,YAAY;IACxF,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAGD,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,YAAY;IACpE,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,iBAAiB;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { NavProps } from './types';
3
+ declare const Nav: React.FC<NavProps>;
4
+ export default Nav;
5
+ export type { NavProps } from './types';
6
+ //# sourceMappingURL=Nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nav.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/Nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,cAAc,CAAC;AAKtB,QAAA,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAiD3B,CAAC;AAEF,eAAe,GAAG,CAAC;AACnB,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { NavItemProps } from './types';
3
+ declare const NavItem: React.FC<NavItemProps>;
4
+ export default NavItem;
5
+ //# sourceMappingURL=NavItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA4NnC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { NavItemType } from './types';
3
+ interface NavSubmenuProps {
4
+ items: NavItemType[];
5
+ onItemClick: (key: string, item: NavItemType) => void;
6
+ }
7
+ declare const NavSubmenu: React.FC<NavSubmenuProps>;
8
+ export default NavSubmenu;
9
+ //# sourceMappingURL=NavSubmenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavSubmenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/NavSubmenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,UAAU,eAAe;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACvD;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuCzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useNavigation } from './useNavigation';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Nav/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { NavItemType } from '../types';
2
+ export interface UseNavigationProps {
3
+ items: NavItemType[];
4
+ defaultSelectedKeys?: string[];
5
+ defaultOpenKeys?: string[];
6
+ selectedKeys?: string[];
7
+ openKeys?: string[];
8
+ onSelect?: (info: {
9
+ key: string;
10
+ keyPath: string[];
11
+ selectedKeys: string[];
12
+ item: NavItemType;
13
+ }) => void;
14
+ onOpenChange?: (openKeys: string[]) => void;
15
+ }
16
+ export declare const useNavigation: ({ items, defaultSelectedKeys, defaultOpenKeys, selectedKeys: controlledSelectedKeys, openKeys: controlledOpenKeys, onSelect, onOpenChange, }: UseNavigationProps) => {
17
+ selectedKeys: string[];
18
+ openKeys: string[];
19
+ handleItemClick: (key: string, item: NavItemType) => void;
20
+ handleToggleExpand: (key: string) => void;
21
+ autoExpandParents: (selectedKey: string) => void;
22
+ getItemInfo: (key: string) => NavItemType | null;
23
+ currentSelectedItem: NavItemType | null;
24
+ };
25
+ //# sourceMappingURL=useNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/Nav/hooks/useNavigation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IACzG,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,aAAa,GAAI,8IAQ3B,kBAAkB;;;2BAWX,MAAM,QAAQ,WAAW;8BAsBzB,MAAM;qCAsBE,MAAM;uBAcgB,MAAM;;CAiB7C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as Nav } from './Nav';
2
+ export type { NavProps, NavItemType } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { default as React } from 'react';
2
+ export interface NavItemType {
3
+ key: string;
4
+ type?: 'item' | 'divider' | 'group';
5
+ label?: React.ReactNode;
6
+ title?: string;
7
+ icon?: React.ReactNode;
8
+ disabled?: boolean;
9
+ children?: NavItemType[];
10
+ className?: string;
11
+ style?: React.CSSProperties;
12
+ }
13
+ export interface NavProps {
14
+ items: NavItemType[];
15
+ mode?: 'inline';
16
+ collapsed?: boolean;
17
+ selectedKeys?: string[];
18
+ defaultSelectedKeys?: string[];
19
+ openKeys?: string[];
20
+ defaultOpenKeys?: string[];
21
+ onSelect?: (info: {
22
+ key: string;
23
+ keyPath: string[];
24
+ selectedKeys: string[];
25
+ item: NavItemType;
26
+ }) => void;
27
+ onOpenChange?: (openKeys: string[]) => void;
28
+ expandIcon?: React.ReactNode;
29
+ className?: string;
30
+ style?: React.CSSProperties;
31
+ }
32
+ export interface NavItemProps {
33
+ item: NavItemType;
34
+ level: number;
35
+ collapsed?: boolean;
36
+ selectedKeys: string[];
37
+ openKeys: string[];
38
+ onItemClick: (key: string, item: NavItemType) => void;
39
+ onToggleExpand: (key: string) => void;
40
+ expandIcon?: React.ReactNode;
41
+ prefixCls: string;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IACzG,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtD,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,43 @@
1
+ import { NavItemType } from './types';
2
+ /**
3
+ * 查找所有父节点的key(排除分组类型)
4
+ * @param items 菜单项数组
5
+ * @param targetKey 目标key
6
+ * @param parents 父节点路径
7
+ * @returns 父节点key数组
8
+ */
9
+ export declare const findParentKeys: (items: NavItemType[], targetKey: string, parents?: string[]) => string[];
10
+ /**
11
+ * 查找菜单项
12
+ * @param items 菜单项数组
13
+ * @param targetKey 目标key
14
+ * @returns 找到的菜单项
15
+ */
16
+ export declare const findMenuItem: (items: NavItemType[], targetKey: string) => NavItemType | null;
17
+ /**
18
+ * 获取所有子节点的key
19
+ * @param item 菜单项
20
+ * @returns 子节点key数组
21
+ */
22
+ export declare const getAllChildKeys: (item: NavItemType) => string[];
23
+ /**
24
+ * 检查是否有子节点(排除分组和分割线类型)
25
+ * @param item 菜单项
26
+ * @returns 是否有子节点
27
+ */
28
+ export declare const hasChildren: (item: NavItemType) => boolean;
29
+ /**
30
+ * 生成唯一的CSS类名
31
+ * @param prefix 前缀
32
+ * @param suffix 后缀
33
+ * @returns CSS类名
34
+ */
35
+ export declare const generateClassName: (prefix: string, suffix?: string) => string;
36
+ /**
37
+ * 生成keyPath,包含当前key及其所有父节点的key
38
+ * @param items 菜单项数组
39
+ * @param targetKey 目标key
40
+ * @returns keyPath数组,从当前key到根节点
41
+ */
42
+ export declare const generateKeyPath: (items: NavItemType[], targetKey: string) => string[];
43
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,WAAW,EAAE,EAAE,WAAW,MAAM,EAAE,UAAS,MAAM,EAAO,KAAG,MAAM,EAetG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,EAAE,EAAE,WAAW,MAAM,KAAG,WAAW,GAAG,IAapF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,WAAW,KAAG,MAAM,EASzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,WAAW,KAAG,OAM/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,MAEnE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,EAAE,EAAE,WAAW,MAAM,KAAG,MAAM,EAI/E,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { CheckableTagProps } from './types';
3
+ declare const CheckableTag: React.FC<CheckableTagProps>;
4
+ export default CheckableTag;
5
+ export type { CheckableTagProps } from './types';
6
+ //# sourceMappingURL=CheckableTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckableTag.d.ts","sourceRoot":"","sources":["../../../../src/components/Tag/CheckableTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,cAAc,CAAC;AAItB,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAW7C,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { TagProps, CheckableTagProps } from './types';
3
+ interface TagComponentType extends React.FC<TagProps> {
4
+ CheckableTag: React.FC<CheckableTagProps>;
5
+ }
6
+ declare const TagComponent: TagComponentType;
7
+ export default TagComponent;
8
+ export type { TagProps } from './types';
9
+ //# sourceMappingURL=Tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../../src/components/Tag/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,cAAc,CAAC;AAkDtB,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC;IACnD,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,QAAA,MAAM,YAAY,EAAE,gBAA0C,CAAC;AAG/D,eAAe,YAAY,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Tag/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AAGvC,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { default as React, PropsWithChildren } from 'react';
2
- import { CheckableTagProps } from './CheckableTag';
3
2
  export interface TagProps extends PropsWithChildren {
4
3
  closeIcon?: boolean | React.ReactNode;
5
4
  color?: string;
@@ -9,9 +8,8 @@ export interface TagProps extends PropsWithChildren {
9
8
  onClose?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
10
9
  onClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
11
10
  }
12
- interface TagComponentType extends React.FC<TagProps> {
13
- CheckableTag: React.FC<CheckableTagProps>;
11
+ export interface CheckableTagProps extends Omit<TagProps, 'onClick'> {
12
+ checked?: boolean;
13
+ onChange?: (checked: boolean) => void;
14
14
  }
15
- declare const TagComponent: TagComponentType;
16
- export default TagComponent;
17
- //# sourceMappingURL=Tag.d.ts.map
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/Tag/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,QAAS,SAAQ,iBAAiB;IACjD,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC"}
@@ -0,0 +1,7 @@
1
+ export { Tag } from './Tag';
2
+ export type { TagProps, CheckableTagProps } from './Tag';
3
+ export { InputTag } from './InputTag';
4
+ export type { InputTagProps } from './InputTag';
5
+ export { Nav } from './Nav';
6
+ export type { NavProps, NavItemType } from './Nav';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAehD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './components';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,qBAAqB,CAAC;AAG7B,cAAc,cAAc,CAAC"}
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- *{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--fontFamilyBase)}.mm-tag{box-sizing:border-box;margin:0;color:var(--colorNeutralForeground1);font-size:var(--fontSizeBase200);line-height:calc(var(--lineHeightBase200) * var(--fontSizeBase200));list-style:none;font-family:var(--fontFamilyBase);height:auto;padding:0 var(--spacingHorizontalS);white-space:nowrap;background:var(--colorNeutralBackground2);border:var(--strokeWidthThin) solid var(--colorNeutralBackground2Hover);border-radius:var(--borderRadiusMedium);opacity:1;text-align:start;position:relative;overflow:hidden;display:inline-flex;flex-wrap:nowrap;gap:var(--spacingHorizontalS);align-items:center}.mm-tag__content{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-tag__close{cursor:pointer;height:100%;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center}.mm-tag--borderless{border:none}.mm-checkable-tag{cursor:pointer!important}.mm-checkable-tag--checked{background-color:var(--colorBrandBackground)!important;color:#fff!important}
1
+ *{margin:0;padding:0}body{font-family:var(--fontFamilyBase)}.mm-tag{box-sizing:border-box;margin:0;color:var(--colorNeutralForeground1);font-size:var(--fontSizeBase200);line-height:calc(var(--lineHeightBase200) * var(--fontSizeBase200));list-style:none;font-family:var(--fontFamilyBase);height:auto;padding:0 var(--spacingHorizontalS);white-space:nowrap;background:var(--colorNeutralBackground2);border:var(--strokeWidthThin) solid var(--colorNeutralBackground2Hover);border-radius:var(--borderRadiusMedium);opacity:1;text-align:start;position:relative;overflow:hidden;display:inline-flex;flex-wrap:nowrap;gap:var(--spacingHorizontalS);align-items:center}.mm-tag__content{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-tag__close{cursor:pointer;height:100%;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center}.mm-tag--borderless{border:none}.mm-checkable-tag{cursor:pointer!important}.mm-checkable-tag--checked{background-color:var(--colorBrandBackground)!important;color:#fff!important}.mm-input-tag{box-sizing:border-box;margin:0;position:relative;display:flex;width:100%;min-width:0;gap:var(--spacingHorizontalXS);padding:var(--spacingVerticalXS) var(--spacingHorizontalS);color:var(--colorNeutralForeground1);font-size:var(--fontSizeBase300);line-height:calc(var(--lineHeightBase300) * var(--fontSizeBase300));font-family:var(--fontFamilyBase);list-style:none;background:var(--colorNeutralBackground1);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);border-radius:var(--borderRadiusMedium);border-bottom-color:var(--colorNeutralStrokeAccessible);transition:all .2s ease}.mm-input-tag:after{content:"";position:absolute;inset:auto 0 0 0;height:max(2px,var(--borderRadiusMedium));border-bottom:var(--strokeWidthThick) solid var(--colorCompoundBrandStroke);border-radius:0 0 var(--borderRadiusMedium) var(--borderRadiusMedium);box-sizing:border-box;clip-path:inset(calc(100% - 2px) 0px 0px);transform:scaleX(0);transition:transform var(--durationUltraFast) var(--curveAccelerateMid)}.mm-input-tag:focus-within:after{transform:scaleX(1);transition:transform var(--durationNormal) var(--curveDecelerateMid)}.mm-input-tag--disabled{cursor:not-allowed;border-color:var(--colorNeutralStrokeDisabled)}.mm-input-tag--disabled .mm-input-tag__input{cursor:not-allowed;color:var(--colorNeutralForegroundDisabled)}.mm-input-tag--disabled .mm-tag{opacity:.5;pointer-events:none}.mm-input-tag--disabled:after{display:none}.mm-input-tag__content{display:flex;flex-wrap:wrap;width:100%;gap:var(--spacingHorizontalXS)}.mm-input-tag__item{margin:var(--spacingVerticalNone) var(--spacingHorizontalXXS);max-width:100%}.mm-input-tag__input{flex:1;border:none;outline:none;background:transparent;color:var(--colorNeutralForeground1);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);line-height:calc(var(--lineHeightBase300) * var(--fontSizeBase300));min-width:50px;padding:var(--spacingVerticalNone);margin:var(--spacingVerticalXXS) var(--spacingHorizontalXXS)}.mm-input-tag__input::placeholder{color:var(--colorNeutralForeground4)}.mm-input-tag__input:disabled{cursor:not-allowed;color:var(--colorNeutralForegroundDisabled)}.mm-nav{background-color:var(--colorNeutralBackground1);overflow:hidden}.mm-nav--inline{width:240px}.mm-nav--collapsed{width:60px}.mm-nav--collapsed .mm-nav__item{justify-content:center;padding:12px}.mm-nav--collapsed .mm-nav__item__label,.mm-nav--collapsed .mm-nav__item__arrow{display:none}.mm-nav--collapsed .mm-nav__item__icon{margin-right:0}.mm-nav--collapsed .mm-nav__submenu{display:none}.mm-nav__list{display:flex;flex-direction:column;gap:4px}.mm-nav__item{display:flex;align-items:center;padding:8px 16px;border-radius:var(--borderRadiusMedium);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--colorNeutralForeground1);font-size:14px;font-weight:400;line-height:20px;min-height:36px;position:relative}.mm-nav__item:hover{background-color:var(--colorNeutralBackground1Hover);color:var(--colorNeutralForeground1Hover)}.mm-nav__item--selected{background-color:var(--colorBrandBackground2)!important;color:var(--colorBrandForeground2)!important;font-weight:600!important}.mm-nav__item--selected:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;background-color:var(--colorBrandStroke1);border-radius:0 2px 2px 0}.mm-nav__item--disabled{color:var(--colorNeutralForegroundDisabled);cursor:not-allowed;opacity:.6}.mm-nav__item--disabled:hover{background-color:transparent;color:var(--colorNeutralForegroundDisabled)}.mm-nav__item__icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:8px;font-size:16px;flex-shrink:0}.mm-nav__item__icon svg{width:16px;height:16px}.mm-nav__item__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-nav__item__arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:auto;flex-shrink:0}.mm-nav__item__arrow svg{width:12px;height:12px}.mm-nav__item__arrow--expanded{transform:rotate(90deg)}.mm-nav__item--level-0{padding-left:24px}.mm-nav__item--level-1{padding-left:48px}.mm-nav__item--level-2{padding-left:72px}.mm-nav__item--level-3{padding-left:96px}.mm-nav__item--level-4{padding-left:120px}.mm-nav__item--level-5{padding-left:144px}.mm-nav__item--level-6{padding-left:168px}.mm-nav__item--level-7{padding-left:192px}.mm-nav__item--level-8{padding-left:216px}.mm-nav__item--level-9{padding-left:240px}.mm-nav__item--level-10{padding-left:264px}.mm-nav__submenu{overflow:hidden;transform-origin:top;display:flex;flex-direction:column;gap:4px;padding:4px 0}.mm-nav__submenu .mm-nav__item{font-size:14px;min-height:32px;padding-top:8px;padding-bottom:8px}.mm-nav__group{margin:8px 0}.mm-nav__group__title{padding:8px 16px 4px;font-size:12px;font-weight:500;color:var(--colorNeutralForeground4);text-transform:uppercase;letter-spacing:.5px;line-height:16px;margin-bottom:4px;-webkit-user-select:none;user-select:none;opacity:.8}.mm-nav__group__content{display:flex;flex-direction:column;gap:2px}.mm-nav__group__content .mm-nav__item{margin:0 8px;border-radius:var(--borderRadiusSmall)}.mm-nav--collapsed .mm-nav__group{margin:4px 0}.mm-nav--collapsed .mm-nav__group__title{display:none}.mm-nav--collapsed .mm-nav__group__content{gap:4px}.mm-nav--collapsed .mm-nav__group__content .mm-nav__item{margin:0;border-radius:var(--borderRadiusMedium)}.mm-nav__group:first-child{margin-top:0}.mm-nav__group:last-child{margin-bottom:0}.mm-nav--collapsed .mm-nav__submenu,.mm-nav--collapsed .mm-nav__submenu--open{transition:opacity .1s ease-in-out,visibility 0s}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luoluoyu/fluentui-plus",
3
- "version": "0.1.4",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "A component library based on Fluent UI, targeting Chinese enterprise applications",
6
6
  "main": "dist/index.js",
@@ -36,6 +36,12 @@
36
36
  "test:coverage": "jest --coverage",
37
37
  "lint": "eslint src --fix",
38
38
  "lint:check": "eslint src",
39
+ "lint:demo": "eslint demo --fix",
40
+ "lint:demo:check": "eslint demo",
41
+ "lint:stories": "eslint stories --fix",
42
+ "lint:stories:check": "eslint stories",
43
+ "lint:all": "eslint src demo stories --fix",
44
+ "lint:all:check": "eslint src demo stories",
39
45
  "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\"",
40
46
  "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,md}\"",
41
47
  "type-check": "tsc --noEmit",
@@ -51,10 +57,16 @@
51
57
  "release:dry-run": "standard-version --dry-run"
52
58
  },
53
59
  "lint-staged": {
54
- "*.{js,jsx,ts,tsx}": [
60
+ "src/**/*.{js,jsx,ts,tsx}": [
55
61
  "eslint --fix",
56
62
  "jest --findRelatedTests --passWithNoTests"
57
63
  ],
64
+ "demo/**/*.{js,jsx,ts,tsx}": [
65
+ "prettier --write"
66
+ ],
67
+ "stories/**/*.{js,jsx,ts,tsx}": [
68
+ "prettier --write"
69
+ ],
58
70
  "*.{json,md,yml,yaml}": [
59
71
  "prettier --write"
60
72
  ]
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
- import { TagProps } from '..';
3
- export interface CheckableTagProps extends Omit<TagProps, 'onClick'> {
4
- checked?: boolean;
5
- onChange?: (checked: boolean) => void;
6
- }
7
- declare const CheckableTag: React.FC<CheckableTagProps>;
8
- export default CheckableTag;
9
- //# sourceMappingURL=CheckableTag.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckableTag.d.ts","sourceRoot":"","sources":["../../../src/components/Tag/CheckableTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAGnC,OAAO,cAAc,CAAC;AAItB,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAW7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/components/Tag/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAGvE,OAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,cAAc,CAAC;AAItB,MAAM,WAAW,QAAS,SAAQ,iBAAiB;IACjD,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAClE;AAgDD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC;IACnD,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,QAAA,MAAM,YAAY,EAAE,gBAA0C,CAAC;AAG/D,eAAe,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Tag/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AAGvC,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { Tag } from './Tag';
2
- export type { TagProps, CheckableTagProps } from './Tag';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,qBAAqB,CAAC;AAG7B,cAAc,cAAc,CAAC"}
File without changes