@geektech/one 0.0.1 → 0.2.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 (86) hide show
  1. package/README-zh.md +258 -3
  2. package/README.md +265 -3
  3. package/dist/alert/OneAlert.d.ts +21 -0
  4. package/dist/alert/index.d.ts +2 -0
  5. package/dist/avatar/OneAvatar.d.ts +21 -0
  6. package/dist/avatar/index.d.ts +2 -0
  7. package/dist/badge/OneBadge.d.ts +18 -0
  8. package/dist/badge/index.d.ts +2 -0
  9. package/dist/breadcrumb/OneBreadcrumb.d.ts +38 -0
  10. package/dist/breadcrumb/index.d.ts +1 -0
  11. package/dist/categories.d.ts +9 -5
  12. package/dist/checkbox/OneCheckboxGroup.d.ts +2 -0
  13. package/dist/collapse/OneCollapse.d.ts +31 -0
  14. package/dist/collapse/index.d.ts +2 -0
  15. package/dist/data-display/index.d.ts +2 -0
  16. package/dist/data-display/types.d.ts +2 -0
  17. package/dist/dialog/DialogOverlay.d.ts +30 -0
  18. package/dist/dialog/OneDialog.d.ts +20 -0
  19. package/dist/dialog/focus-manager.d.ts +10 -0
  20. package/dist/dialog/index.d.ts +7 -0
  21. package/dist/dialog/scroll-lock.d.ts +2 -0
  22. package/dist/dialog/service.d.ts +22 -0
  23. package/dist/dialog/types.d.ts +14 -0
  24. package/dist/empty/OneEmpty.d.ts +12 -0
  25. package/dist/empty/index.d.ts +2 -0
  26. package/dist/form/OneForm.d.ts +1 -1
  27. package/dist/form/OneFormItem.d.ts +1 -1
  28. package/dist/index.d.ts +49 -2
  29. package/dist/index.js +5761 -98
  30. package/dist/index.js.map +59 -15
  31. package/dist/loading/OneLoading.d.ts +16 -0
  32. package/dist/loading/index.d.ts +2 -0
  33. package/dist/message/MessageOverlay.d.ts +25 -0
  34. package/dist/message/OneMessage.d.ts +19 -0
  35. package/dist/message/index.d.ts +6 -0
  36. package/dist/message/normalize.d.ts +8 -0
  37. package/dist/message/service.d.ts +17 -0
  38. package/dist/message/timer.d.ts +21 -0
  39. package/dist/message/types.d.ts +14 -0
  40. package/dist/navigation/index.d.ts +2 -0
  41. package/dist/navigation/normalize.d.ts +3 -0
  42. package/dist/navigation/types.d.ts +4 -0
  43. package/dist/overlay/container.d.ts +2 -0
  44. package/dist/overlay/errors.d.ts +9 -0
  45. package/dist/overlay/host.d.ts +16 -0
  46. package/dist/overlay/index.d.ts +7 -0
  47. package/dist/overlay/mount-controller.d.ts +13 -0
  48. package/dist/overlay/positioner.d.ts +36 -0
  49. package/dist/overlay/types.d.ts +32 -0
  50. package/dist/pagination/OnePagination.d.ts +42 -0
  51. package/dist/pagination/index.d.ts +2 -0
  52. package/dist/pagination/tokens.d.ts +2 -0
  53. package/dist/progress/OneProgress.d.ts +15 -0
  54. package/dist/progress/index.d.ts +2 -0
  55. package/dist/radio/OneRadio.d.ts +32 -0
  56. package/dist/radio/OneRadioGroup.d.ts +30 -0
  57. package/dist/radio/index.d.ts +4 -0
  58. package/dist/rate/OneRate.d.ts +28 -0
  59. package/dist/rate/index.d.ts +2 -0
  60. package/dist/skeleton/OneSkeleton.d.ts +16 -0
  61. package/dist/skeleton/index.d.ts +2 -0
  62. package/dist/slider/OneSlider.d.ts +29 -0
  63. package/dist/slider/index.d.ts +2 -0
  64. package/dist/styles/shared.d.ts +13 -0
  65. package/dist/table/OneTable.d.ts +26 -0
  66. package/dist/table/index.d.ts +2 -0
  67. package/dist/tabs/OneTabs.d.ts +34 -0
  68. package/dist/tabs/index.d.ts +2 -0
  69. package/dist/tag/OneTag.d.ts +21 -0
  70. package/dist/tag/index.d.ts +2 -0
  71. package/dist/theme/OneThemeService.d.ts +14 -0
  72. package/dist/theme/default-theme.d.ts +2 -0
  73. package/dist/theme/errors.d.ts +9 -0
  74. package/dist/theme/index.d.ts +4 -0
  75. package/dist/theme/normalize.d.ts +6 -0
  76. package/dist/theme/types.d.ts +57 -0
  77. package/dist/theme/variables.d.ts +6 -0
  78. package/dist/time-picker/OneTimePicker.d.ts +47 -0
  79. package/dist/time-picker/index.d.ts +2 -0
  80. package/dist/tooltip/OneTooltip.d.ts +45 -0
  81. package/dist/tooltip/TooltipBubble.d.ts +29 -0
  82. package/dist/tooltip/index.d.ts +4 -0
  83. package/dist/tooltip/types.d.ts +17 -0
  84. package/dist/upload/OneUpload.d.ts +36 -0
  85. package/dist/upload/index.d.ts +2 -0
  86. package/package.json +3 -2
@@ -0,0 +1,14 @@
1
+ import type { OneThemeInitOptions, OneThemeService } from './types';
2
+ type OneThemeRootResolver = () => HTMLElement | undefined;
3
+ export declare class DomOneThemeService implements OneThemeService {
4
+ private readonly resolveRoot;
5
+ private themes;
6
+ private activeTheme;
7
+ constructor(resolveRoot: OneThemeRootResolver);
8
+ get currentTheme(): string;
9
+ init(options?: OneThemeInitOptions): void;
10
+ switch(name: string): void;
11
+ private requireRoot;
12
+ }
13
+ export declare const oneTheme: OneThemeService;
14
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { OneResolvedTheme } from './types';
2
+ export declare const ONE_DEFAULT_THEME: OneResolvedTheme;
@@ -0,0 +1,9 @@
1
+ export declare class OneThemeConfigError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare class OneThemeNotFoundError extends Error {
5
+ constructor(themeName: string);
6
+ }
7
+ export declare class OneThemeEnvironmentError extends Error {
8
+ constructor();
9
+ }
@@ -0,0 +1,4 @@
1
+ export { ONE_DEFAULT_THEME } from './default-theme';
2
+ export { OneThemeConfigError, OneThemeEnvironmentError, OneThemeNotFoundError, } from './errors';
3
+ export { oneTheme } from './OneThemeService';
4
+ export type { OneResolvedTheme, OneThemeBorder, OneThemeColors, OneThemeDefinition, OneThemeInitOptions, OneThemeRadius, OneThemeService, OneThemeTypography, } from './types';
@@ -0,0 +1,6 @@
1
+ import type { OneResolvedTheme, OneThemeInitOptions } from './types';
2
+ export interface NormalizedOneThemeOptions {
3
+ readonly themes: Readonly<Record<string, OneResolvedTheme>>;
4
+ readonly defaultTheme: string;
5
+ }
6
+ export declare function normalizeOneThemeOptions(options?: OneThemeInitOptions): NormalizedOneThemeOptions;
@@ -0,0 +1,57 @@
1
+ export interface OneThemeColors {
2
+ primary: string;
3
+ primaryHover: string;
4
+ primaryContrast: string;
5
+ secondary: string;
6
+ secondaryHover: string;
7
+ secondaryContrast: string;
8
+ danger: string;
9
+ dangerHover: string;
10
+ dangerContrast: string;
11
+ info: string;
12
+ success: string;
13
+ warning: string;
14
+ overlay: string;
15
+ surface: string;
16
+ text: string;
17
+ muted: string;
18
+ focus: string;
19
+ }
20
+ export interface OneThemeTypography {
21
+ fontFamily: string;
22
+ fontSizeSm: string;
23
+ fontSizeMd: string;
24
+ fontSizeLg: string;
25
+ lineHeight: string;
26
+ }
27
+ export interface OneThemeBorder {
28
+ color: string;
29
+ width: string;
30
+ style: string;
31
+ }
32
+ export interface OneThemeRadius {
33
+ sm: string;
34
+ md: string;
35
+ lg: string;
36
+ }
37
+ export interface OneThemeDefinition {
38
+ colors?: Partial<OneThemeColors>;
39
+ typography?: Partial<OneThemeTypography>;
40
+ border?: Partial<OneThemeBorder>;
41
+ radius?: Partial<OneThemeRadius>;
42
+ }
43
+ export interface OneResolvedTheme {
44
+ readonly colors: Readonly<OneThemeColors>;
45
+ readonly typography: Readonly<OneThemeTypography>;
46
+ readonly border: Readonly<OneThemeBorder>;
47
+ readonly radius: Readonly<OneThemeRadius>;
48
+ }
49
+ export interface OneThemeInitOptions {
50
+ themes?: Readonly<Record<string, OneThemeDefinition>>;
51
+ defaultTheme?: string;
52
+ }
53
+ export interface OneThemeService {
54
+ readonly currentTheme: string;
55
+ init(options?: OneThemeInitOptions): void;
56
+ switch(name: string): void;
57
+ }
@@ -0,0 +1,6 @@
1
+ import type { OneResolvedTheme } from './types';
2
+ type OneThemeVariableReader = (theme: OneResolvedTheme) => string;
3
+ type OneThemeVariable = readonly [string, OneThemeVariableReader];
4
+ export declare const ONE_THEME_VARIABLES: readonly OneThemeVariable[];
5
+ export declare function oneThemeToVariables(theme: OneResolvedTheme): ReadonlyArray<readonly [string, string]>;
6
+ export {};
@@ -0,0 +1,47 @@
1
+ import { Component, type VNode } from '@geektech/tsone';
2
+ import { type OneNamedStyle } from '../styles/shared';
3
+ import type { OneComponentSize } from '../types';
4
+ export interface OneTimePickerValueEvent {
5
+ value: string;
6
+ originalEvent: Event;
7
+ }
8
+ export interface OneTimePickerProps {
9
+ value?: string;
10
+ defaultValue?: string;
11
+ name?: string;
12
+ placeholder?: string;
13
+ step?: number;
14
+ min?: string;
15
+ max?: string;
16
+ size?: OneComponentSize;
17
+ disabled?: boolean;
18
+ readonly?: boolean;
19
+ required?: boolean;
20
+ invalid?: boolean;
21
+ ariaLabel?: string;
22
+ }
23
+ interface OneTimePickerState {
24
+ internalValue: string;
25
+ open: boolean;
26
+ revision: number;
27
+ }
28
+ export declare const ONE_TIME_PICKER_STYLES: OneNamedStyle[];
29
+ export declare class OneTimePicker extends Component<OneTimePickerProps, OneTimePickerState> {
30
+ private fieldContext;
31
+ private unsubscribe;
32
+ protected initState(): OneTimePickerState;
33
+ protected initStyles(): void;
34
+ protected render(): VNode;
35
+ protected onUpdated(): void;
36
+ protected beforeMount(): void;
37
+ protected onMounted(): void;
38
+ protected onUnmounted(): void;
39
+ private getDisplayValue;
40
+ private rangeValues;
41
+ private buildColumn;
42
+ private commitPart;
43
+ private writeValue;
44
+ private handleKeydown;
45
+ private emitValue;
46
+ }
47
+ export {};
@@ -0,0 +1,2 @@
1
+ export { OneTimePicker } from './OneTimePicker';
2
+ export type { OneTimePickerProps, OneTimePickerValueEvent } from './OneTimePicker';
@@ -0,0 +1,45 @@
1
+ import { Component, type VNode } from '@geektech/tsone';
2
+ import type { OneTooltipProps } from './types';
3
+ interface OneTooltipState {
4
+ internalOpen: boolean;
5
+ }
6
+ export declare class OneTooltip extends Component<OneTooltipProps, OneTooltipState> {
7
+ private readonly positioner;
8
+ private controller;
9
+ private triggerElement;
10
+ private targetDocument;
11
+ private previousDescribedBy;
12
+ private describedBySaved;
13
+ private tooltipId;
14
+ private hovered;
15
+ private focused;
16
+ private openTimer;
17
+ private closeTimer;
18
+ protected initState(): OneTooltipState;
19
+ protected initStyles(): void;
20
+ protected onMounted(): void;
21
+ protected beforeUpdate(): void;
22
+ protected beforeUnmount(): void;
23
+ protected render(): VNode;
24
+ private createBubble;
25
+ private synchronizeOverlay;
26
+ private bubbleOptions;
27
+ private requestedOpen;
28
+ private requestOpen;
29
+ private handleMouseEnter;
30
+ private handleMouseLeave;
31
+ private handleFocusIn;
32
+ private handleFocusOut;
33
+ private handleTriggerClick;
34
+ private readonly handleDocumentClick;
35
+ private readonly handleDocumentKeydown;
36
+ private scheduleOpen;
37
+ private scheduleClose;
38
+ private clearTimers;
39
+ private cancelOpenTimer;
40
+ private cancelCloseTimer;
41
+ private applyDescribedBy;
42
+ private restoreDescribedBy;
43
+ private normalizedTrigger;
44
+ }
45
+ export {};
@@ -0,0 +1,29 @@
1
+ import { Component, type VNode } from '@geektech/tsone';
2
+ import type { OneOverlayPlacement, OneOverlayPositioner } from '../overlay';
3
+ import { type OneNamedStyle } from '../styles/shared';
4
+ export interface TooltipBubbleProps {
5
+ id: string;
6
+ content: VNode | string;
7
+ reference: HTMLElement;
8
+ placement: OneOverlayPlacement;
9
+ offset: number;
10
+ boundaryPadding: number;
11
+ arrow: boolean;
12
+ container: HTMLElement;
13
+ positioner: OneOverlayPositioner;
14
+ }
15
+ export declare const ONE_TOOLTIP_STYLES: OneNamedStyle[];
16
+ interface TooltipBubbleState {
17
+ }
18
+ export declare class TooltipBubble extends Component<TooltipBubbleProps, TooltipBubbleState> {
19
+ private stopAutoUpdate;
20
+ mount(container: HTMLElement): void;
21
+ setProps(props: Partial<TooltipBubbleProps>): void;
22
+ protected initState(): TooltipBubbleState;
23
+ protected initStyles(): void;
24
+ protected onUnmounted(): void;
25
+ protected render(): VNode;
26
+ private updatePosition;
27
+ private boundaryRect;
28
+ }
29
+ export {};
@@ -0,0 +1,4 @@
1
+ export { OneTooltip } from './OneTooltip';
2
+ export { ONE_TOOLTIP_STYLES, TooltipBubble } from './TooltipBubble';
3
+ export type { TooltipBubbleProps } from './TooltipBubble';
4
+ export type { OneTooltipProps, OneTooltipTrigger } from './types';
@@ -0,0 +1,17 @@
1
+ import type { VNode } from '@geektech/tsone';
2
+ import type { OneOverlayContainer, OneOverlayPlacement } from '../overlay';
3
+ export type OneTooltipTrigger = 'hover-focus' | 'click' | 'manual';
4
+ export interface OneTooltipProps {
5
+ content: VNode | string;
6
+ placement?: OneOverlayPlacement;
7
+ trigger?: OneTooltipTrigger;
8
+ open?: boolean;
9
+ defaultOpen?: boolean;
10
+ openDelay?: number;
11
+ closeDelay?: number;
12
+ offset?: number;
13
+ container?: OneOverlayContainer;
14
+ arrow?: boolean;
15
+ disabled?: boolean;
16
+ children?: Array<VNode | string>;
17
+ }
@@ -0,0 +1,36 @@
1
+ import { Component, type VNode } from '@geektech/tsone';
2
+ import { type OneNamedStyle } from '../styles/shared';
3
+ export interface OneUploadFile {
4
+ id: string;
5
+ name: string;
6
+ size?: number;
7
+ type?: string;
8
+ }
9
+ export interface OneUploadChangeEvent {
10
+ files: OneUploadFile[];
11
+ originalEvent: Event;
12
+ }
13
+ export interface OneUploadProps {
14
+ accept?: string;
15
+ multiple?: boolean;
16
+ disabled?: boolean;
17
+ max?: number;
18
+ value?: readonly OneUploadFile[];
19
+ defaultValue?: readonly OneUploadFile[];
20
+ ariaLabel?: string;
21
+ children?: Array<VNode | string>;
22
+ }
23
+ interface OneUploadState {
24
+ internalFiles: OneUploadFile[];
25
+ }
26
+ export declare const ONE_UPLOAD_STYLES: OneNamedStyle[];
27
+ export declare function formatOneFileSize(bytes: number): string;
28
+ export declare class OneUpload extends Component<OneUploadProps, OneUploadState> {
29
+ protected initState(): OneUploadState;
30
+ protected initStyles(): void;
31
+ protected render(): VNode;
32
+ private getFiles;
33
+ private handleFiles;
34
+ private removeFile;
35
+ }
36
+ export {};
@@ -0,0 +1,2 @@
1
+ export { OneUpload, formatOneFileSize } from './OneUpload';
2
+ export type { OneUploadChangeEvent, OneUploadFile, OneUploadProps } from './OneUpload';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geektech/one",
3
- "version": "0.0.1",
3
+ "version": "0.2.0",
4
4
  "description": "One UI 是基于 TSone 的轻量级纯 TypeScript UI 组件库",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -23,7 +23,8 @@
23
23
  "@geektech/tsone": ">=0.1.0 <0.2.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@geektech/tsone": "workspace:*"
26
+ "@geektech/tsone": "workspace:*",
27
+ "@geektech/tsone-cli": "workspace:*"
27
28
  },
28
29
  "files": [
29
30
  "dist",