@max-ts/kit 1.9.0 → 1.10.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.
@@ -1 +1 @@
1
- {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../../src/components/PageLayout/Content/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,QAOpB,CAAC;AAEH,eAAO,MAAM,eAAe,QAE1B,CAAC"}
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../../src/components/PageLayout/Content/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,QAMpB,CAAC;AAEH,eAAO,MAAM,eAAe,QAE1B,CAAC"}
@@ -5,6 +5,14 @@ export type PageHeaderProps = {
5
5
  * @example <PageHeader title="Заголовок страницы" />
6
6
  */
7
7
  title?: string;
8
+ /**
9
+ * HTML title
10
+ * @example <PageHeader htmlTitle="Заголовок страницы" />
11
+ */
12
+ htmlTitle?: string;
13
+ /**
14
+ * Компонент для отображения триггера бокового меню
15
+ */
8
16
  sidebarTrigger?: ReactElement;
9
17
  /**
10
18
  * Набор дополнительных действий
@@ -17,5 +25,5 @@ export type PageHeaderProps = {
17
25
  className?: string;
18
26
  children: ReactElement;
19
27
  };
20
- export declare const Header: ({ actions, className, title, children, sidebarTrigger, }: PageHeaderProps) => import("react").JSX.Element;
28
+ export declare const Header: ({ actions, className, title, children, sidebarTrigger, htmlTitle, }: PageHeaderProps) => import("react").JSX.Element;
21
29
  //# sourceMappingURL=Header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/components/PageLayout/Header/Header.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,OAAO,CAAC;AAKrD,MAAM,MAAM,eAAe,GAAG;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,cAAc,CAAC,EAAE,YAAY,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,0DAMpB,eAAe,gCAuBjB,CAAC"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/components/PageLayout/Header/Header.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,OAAO,CAAC;AAKrD,MAAM,MAAM,eAAe,GAAG;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,YAAY,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,qEAOpB,eAAe,gCA0BjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../../src/components/PageLayout/Header/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAUf,CAAC;AAEH,eAAO,MAAM,OAAO,QAOlB,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAGlC,CAAC;AAEH,eAAO,MAAM,cAAc,QAGzB,CAAC;AAEH,eAAO,MAAM,OAAO,QAElB,CAAC"}
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../../src/components/PageLayout/Header/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QASf,CAAC;AAOH,eAAO,MAAM,OAAO,QASlB,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,cAAc,QAQzB,CAAC;AAEH,eAAO,MAAM,OAAO,QAGlB,CAAC"}
@@ -5,7 +5,7 @@ export type PageLayoutProps = {
5
5
  };
6
6
  export declare const PageLayout: {
7
7
  ({ children, className }: PageLayoutProps): import("react").JSX.Element;
8
- Header: ({ actions, className, title, children, sidebarTrigger, }: import("./Header").PageHeaderProps) => import("react").JSX.Element;
8
+ Header: ({ actions, className, title, children, sidebarTrigger, htmlTitle, }: import("./Header").PageHeaderProps) => import("react").JSX.Element;
9
9
  Content: (props: import("./Content").PageContentProps) => import("react").JSX.Element;
10
10
  Footer: (props: import("./Footer").PageLayoutFooterProps) => import("react").JSX.Element;
11
11
  Aside: ({ children, className }: import("./Aside").PageAsideProps) => import("react").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import type { ScalableContainerProps } from './types';
2
+ declare function ScalableContainer({ initialScale, minScale, maxScale, showToolbar, onScaleChanged, onPositionChanged, onWheel, className, children, style, ...props }: ScalableContainerProps): import("react").JSX.Element;
3
+ export { ScalableContainer };
4
+ //# sourceMappingURL=ScalableContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalableContainer.d.ts","sourceRoot":"","sources":["../../../src/components/ScalableContainer/ScalableContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGtD,iBAAS,iBAAiB,CAAC,EAC1B,YAAgB,EAChB,QAAc,EACd,QAAY,EACZ,WAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACR,EAAE,sBAAsB,+BAiGxB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './ScalableContainer';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalableContainer/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const viewport: string;
2
+ export declare const toolbar: string;
3
+ export declare const overlay: string;
4
+ export declare const content: string;
5
+ //# sourceMappingURL=styles.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/ScalableContainer/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ,QAMnB,CAAC;AAEH,eAAO,MAAM,OAAO,QAclB,CAAC;AAEH,eAAO,MAAM,OAAO,QAoBlB,CAAC;AAEH,eAAO,MAAM,OAAO,QAOlB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type ScalableContainerPosition = {
2
+ x: number;
3
+ y: number;
4
+ };
5
+ export type ScalableContainerProps = React.ComponentPropsWithoutRef<'div'> & {
6
+ initialScale?: number;
7
+ minScale?: number;
8
+ maxScale?: number;
9
+ showToolbar?: boolean;
10
+ onScaleChanged?: (scale: number) => void;
11
+ onPositionChanged?: (position: ScalableContainerPosition) => void;
12
+ };
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScalableContainer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAClE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { ScalableContainerProps } from './types';
2
+ type UseLogicParams = Pick<ScalableContainerProps, 'initialScale' | 'minScale' | 'maxScale' | 'onScaleChanged' | 'onPositionChanged'>;
3
+ export declare function useLogic({ initialScale, minScale, maxScale, onScaleChanged, onPositionChanged, }: UseLogicParams): {
4
+ contentStyle: {
5
+ transform: string;
6
+ transition: string;
7
+ };
8
+ cursor: string;
9
+ handlePointerDown: (event: React.PointerEvent<HTMLDivElement>) => void;
10
+ handlePointerEnd: (event: React.PointerEvent<HTMLDivElement>) => void;
11
+ handlePointerMove: (event: React.PointerEvent<HTMLDivElement>) => void;
12
+ handleTouchEnd: () => void;
13
+ handleTouchMove: (event: React.TouchEvent<HTMLDivElement>) => void;
14
+ handleTouchStart: (event: React.TouchEvent<HTMLDivElement>) => void;
15
+ modifierKey: string;
16
+ reset: () => void;
17
+ showOverlay: boolean;
18
+ viewportRef: import("react").RefObject<HTMLDivElement | null>;
19
+ zoomIn: () => void;
20
+ zoomOut: () => void;
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=useLogic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogic.d.ts","sourceRoot":"","sources":["../../../src/components/ScalableContainer/useLogic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,sBAAsB,EACtB,MAAM,SAAS,CAAC;AAOjB,KAAK,cAAc,GAAG,IAAI,CACzB,sBAAsB,EACpB,cAAc,GACd,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,mBAAmB,CACrB,CAAC;AAuBF,wBAAgB,QAAQ,CAAC,EACxB,YAAgB,EAChB,QAAc,EACd,QAAY,EACZ,cAAc,EACd,iBAAiB,GACjB,EAAE,cAAc;;;;;;+BAqDP,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;8BAyClC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;+BAnBlC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;;6BAmDlC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;8BAbhC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;;;;;;EAmGzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/styles.css.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,SAAS,CAAC;AAcjB,eAAO,MAAM,OAAO,QASlB,CAAC;AAEH,eAAO,MAAM,cAAc,QAQzB,CAAC;AAMH,eAAO,MAAM,GAAG,QAKd,CAAC;AAqBH,eAAO,MAAM,SAAS,QAcpB,CAAC;AAwDH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,KAAK,QAMhB,CAAC;AAQH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,cAAc,QAUzB,CAAC;AAEH,eAAO,MAAM,OAAO,QAGlB,CAAC;AAEH,eAAO,MAAM,IAAI,QA8Bf,CAAC;AAoDH,eAAO,MAAM,KAAK,QAOhB,CAAC;AAwBH,eAAO,MAAM,KAAK,QAIhB,CAAC;AAEH,eAAO,MAAM,MAAM,QAKjB,CAAC;AAEH,eAAO,MAAM,MAAM,QAKjB,CAAC;AAEH,eAAO,MAAM,SAAS,QAMpB,CAAC;AAEH,eAAO,MAAM,OAAO,QAOlB,CAAC;AAMH,eAAO,MAAM,KAAK,QAOhB,CAAC;AAEH,eAAO,MAAM,UAAU,QAiBrB,CAAC;AAaH,eAAO,MAAM,WAAW,QAwCtB,CAAC;AAYH,eAAO,MAAM,YAAY,QAGvB,CAAC;AAEH,eAAO,MAAM,IAAI,QASf,CAAC;AAEH,eAAO,MAAM,QAAQ,QAEnB,CAAC;AAEH,eAAO,MAAM,UAAU,QA+CrB,CAAC;AAEH,eAAO,MAAM,kBAAkB,0CAc7B,CAAC;AAEH,eAAO,MAAM,eAAe,uCAe1B,CAAC;AA+BH,eAAO,MAAM,UAAU,QAyCrB,CAAC;AA2CH,eAAO,MAAM,SAAS,QAgBpB,CAAC;AA0BH,eAAO,MAAM,YAAY,QAOvB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAInB,CAAC;AAEH,eAAO,MAAM,YAAY,QAGvB,CAAC;AAEH,eAAO,MAAM,YAAY,QAIvB,CAAC;AAEH,eAAO,MAAM,OAAO,QAUlB,CAAC;AAMH,eAAO,MAAM,WAAW,QAEtB,CAAC;AAEH,eAAO,MAAM,aAAa,QAoCxB,CAAC;AAEH,eAAO,MAAM,kBAAkB,0CAS7B,CAAC"}
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/styles.css.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,SAAS,CAAC;AAcjB,eAAO,MAAM,OAAO,QAUlB,CAAC;AAEH,eAAO,MAAM,cAAc,QAQzB,CAAC;AAMH,eAAO,MAAM,GAAG,QAKd,CAAC;AAqBH,eAAO,MAAM,SAAS,QAcpB,CAAC;AAwDH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,KAAK,QAMhB,CAAC;AAQH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,cAAc,QAUzB,CAAC;AAEH,eAAO,MAAM,OAAO,QAGlB,CAAC;AAEH,eAAO,MAAM,IAAI,QA8Bf,CAAC;AAoDH,eAAO,MAAM,KAAK,QAOhB,CAAC;AAwBH,eAAO,MAAM,KAAK,QAIhB,CAAC;AAEH,eAAO,MAAM,MAAM,QAKjB,CAAC;AAEH,eAAO,MAAM,MAAM,QAKjB,CAAC;AAEH,eAAO,MAAM,SAAS,QAMpB,CAAC;AAEH,eAAO,MAAM,OAAO,QAOlB,CAAC;AAMH,eAAO,MAAM,KAAK,QAOhB,CAAC;AAEH,eAAO,MAAM,UAAU,QAiBrB,CAAC;AAaH,eAAO,MAAM,WAAW,QAwCtB,CAAC;AAYH,eAAO,MAAM,YAAY,QAGvB,CAAC;AAEH,eAAO,MAAM,IAAI,QASf,CAAC;AAEH,eAAO,MAAM,QAAQ,QAEnB,CAAC;AAEH,eAAO,MAAM,UAAU,QA+CrB,CAAC;AAEH,eAAO,MAAM,kBAAkB,0CAc7B,CAAC;AAEH,eAAO,MAAM,eAAe,uCAe1B,CAAC;AA+BH,eAAO,MAAM,UAAU,QAyCrB,CAAC;AA2CH,eAAO,MAAM,SAAS,QAgBpB,CAAC;AA0BH,eAAO,MAAM,YAAY,QAOvB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAInB,CAAC;AAEH,eAAO,MAAM,YAAY,QAGvB,CAAC;AAEH,eAAO,MAAM,YAAY,QAIvB,CAAC;AAEH,eAAO,MAAM,OAAO,QAUlB,CAAC;AAMH,eAAO,MAAM,WAAW,QAEtB,CAAC;AAEH,eAAO,MAAM,aAAa,QAoCxB,CAAC;AAEH,eAAO,MAAM,kBAAkB,0CAS7B,CAAC"}
@@ -42,6 +42,7 @@ export * from './Placeholder';
42
42
  export * from './Popover';
43
43
  export * from './RadioGroup';
44
44
  export * from './RangeInput';
45
+ export * from './ScalableContainer';
45
46
  export * from './ScrollTopButton';
46
47
  export * from './Select';
47
48
  export * from './Sheet';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
package/lib/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Accordion, Checkbox } from "@base-ui/react";
3
3
  import clsx_0, { clsx } from "clsx";
4
- import { ArrowDownNarrowWide, ArrowDownUp, ArrowDownWideNarrow, ArrowLeft, ArrowRight, Calendar1, Check, CheckIcon, ChevronDown, ChevronDownIcon, ChevronLeft, ChevronRight, ChevronRightIcon, ChevronUp, CircleCheck, CircleIcon, Copy, Ellipsis as external_lucide_react_Ellipsis, EllipsisVertical, Info, Loader, Minus, MoreHorizontalIcon, OctagonAlert, PanelLeftIcon, TriangleAlert, XIcon } from "lucide-react";
4
+ import { ArrowDownNarrowWide, ArrowDownUp, ArrowDownWideNarrow, ArrowLeft, ArrowRight, Calendar1, Check, CheckIcon, ChevronDown, ChevronDownIcon, ChevronLeft, ChevronRight, ChevronRightIcon, ChevronUp, CircleCheck, CircleIcon, Copy, Ellipsis as external_lucide_react_Ellipsis, EllipsisVertical, Info, Loader, Minus, MoreHorizontalIcon, OctagonAlert, PanelLeftIcon, RotateCcwIcon, TriangleAlert, XIcon, ZoomInIcon, ZoomOutIcon } from "lucide-react";
5
5
  import { AlertDialog } from "@base-ui/react/alert-dialog";
6
6
  import { Button } from "@base-ui/react/button";
7
7
  import react, { Component as external_react_Component, createContext, createElement, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
@@ -3949,11 +3949,16 @@ var Header_styles_css_content = 'style__nvcxbd4';
3949
3949
  var Header_styles_css_root = 'style__nvcxbd0';
3950
3950
  var sidebarTriggerContainer = 'style__nvcxbd2';
3951
3951
  var titleContainer = 'style__nvcxbd3';
3952
- const Header_Header_Header = ({ actions, className, title, children, sidebarTrigger })=>{
3952
+ const Header_Header_Header = ({ actions, className, title, children, sidebarTrigger, htmlTitle })=>{
3953
3953
  useEffect(()=>{
3954
+ if (htmlTitle) {
3955
+ document.title = htmlTitle;
3956
+ return;
3957
+ }
3954
3958
  if (title) document.title = title;
3955
3959
  }, [
3956
- title
3960
+ title,
3961
+ htmlTitle
3957
3962
  ]);
3958
3963
  return /*#__PURE__*/ jsxs("header", {
3959
3964
  className: clsx(Header_styles_css_root, PAGE_HEADER_CLASSNAME, className),
@@ -4524,6 +4529,279 @@ function RangeInput({ min, max, onChange, minValue, maxValue, width = 150, unit
4524
4529
  ]
4525
4530
  });
4526
4531
  }
4532
+ var ScalableContainer_styles_css_content = 'style__uxh2ml3';
4533
+ var ScalableContainer_styles_css_overlay = 'style__uxh2ml2';
4534
+ var toolbar = 'style__uxh2ml1';
4535
+ var ScalableContainer_styles_css_viewport = 'style__uxh2ml0';
4536
+ const DEFAULT_POSITION = {
4537
+ x: 0,
4538
+ y: 0
4539
+ };
4540
+ const OVERLAY_TIMEOUT = 1500;
4541
+ const ZOOM_FACTOR = 1.5;
4542
+ const WHEEL_ZOOM_FACTOR = 0.05;
4543
+ function clampScale(value, minScale, maxScale) {
4544
+ return Math.max(minScale, Math.min(maxScale, value));
4545
+ }
4546
+ function getDistance(firstTouch, secondTouch) {
4547
+ const deltaX = firstTouch.clientX - secondTouch.clientX;
4548
+ const deltaY = firstTouch.clientY - secondTouch.clientY;
4549
+ return Math.sqrt(deltaX * deltaX + deltaY * deltaY);
4550
+ }
4551
+ function shouldSkipDragStart(target) {
4552
+ if (!(target instanceof Element)) return false;
4553
+ return Boolean(target.closest('button, a, input, textarea, select, label, path, summary, [role="button"], [contenteditable="true"]'));
4554
+ }
4555
+ function ScalableContainer_useLogic_useLogic({ initialScale = 1, minScale = 0.1, maxScale = 4, onScaleChanged, onPositionChanged }) {
4556
+ const initialClampedScale = clampScale(initialScale, minScale, maxScale);
4557
+ const [scale, setScaleState] = useState(initialClampedScale);
4558
+ const [position, setPositionState] = useState(DEFAULT_POSITION);
4559
+ const [isDragging, setIsDragging] = useState(false);
4560
+ const [showOverlay, setShowOverlay] = useState(false);
4561
+ const scaleRef = useRef(initialClampedScale);
4562
+ const positionRef = useRef(DEFAULT_POSITION);
4563
+ const dragStartRef = useRef(DEFAULT_POSITION);
4564
+ const activePointersRef = useRef(new Map());
4565
+ const initialPinchDistanceRef = useRef(0);
4566
+ const initialPinchScaleRef = useRef(initialClampedScale);
4567
+ const overlayTimeoutRef = useRef(void 0);
4568
+ const viewportRef = useRef(null);
4569
+ const setScale = useCallback((value)=>{
4570
+ const nextScale = clampScale(value, minScale, maxScale);
4571
+ scaleRef.current = nextScale;
4572
+ setScaleState(nextScale);
4573
+ onScaleChanged?.(nextScale);
4574
+ }, [
4575
+ maxScale,
4576
+ minScale,
4577
+ onScaleChanged
4578
+ ]);
4579
+ const setPosition = useCallback((nextPosition)=>{
4580
+ positionRef.current = nextPosition;
4581
+ setPositionState(nextPosition);
4582
+ onPositionChanged?.(nextPosition);
4583
+ }, [
4584
+ onPositionChanged
4585
+ ]);
4586
+ const zoomIn = useCallback(()=>{
4587
+ setScale(scaleRef.current * ZOOM_FACTOR);
4588
+ }, [
4589
+ setScale
4590
+ ]);
4591
+ const zoomOut = useCallback(()=>{
4592
+ setScale(scaleRef.current / ZOOM_FACTOR);
4593
+ }, [
4594
+ setScale
4595
+ ]);
4596
+ const reset = useCallback(()=>{
4597
+ setScale(initialScale);
4598
+ setPosition(DEFAULT_POSITION);
4599
+ }, [
4600
+ initialScale,
4601
+ setPosition,
4602
+ setScale
4603
+ ]);
4604
+ const handlePointerDown = useCallback((event)=>{
4605
+ if ('mouse' === event.pointerType && 0 !== event.button) return;
4606
+ if (shouldSkipDragStart(event.target)) return;
4607
+ event.currentTarget.setPointerCapture(event.pointerId);
4608
+ activePointersRef.current.set(event.pointerId, {
4609
+ x: event.clientX,
4610
+ y: event.clientY
4611
+ });
4612
+ if (1 === activePointersRef.current.size) {
4613
+ setIsDragging(true);
4614
+ dragStartRef.current = {
4615
+ x: event.clientX - positionRef.current.x,
4616
+ y: event.clientY - positionRef.current.y
4617
+ };
4618
+ }
4619
+ }, []);
4620
+ const handlePointerMove = useCallback((event)=>{
4621
+ if (!activePointersRef.current.has(event.pointerId)) return;
4622
+ activePointersRef.current.set(event.pointerId, {
4623
+ x: event.clientX,
4624
+ y: event.clientY
4625
+ });
4626
+ if (1 === activePointersRef.current.size) setPosition({
4627
+ x: event.clientX - dragStartRef.current.x,
4628
+ y: event.clientY - dragStartRef.current.y
4629
+ });
4630
+ }, [
4631
+ setPosition
4632
+ ]);
4633
+ const handlePointerEnd = useCallback((event)=>{
4634
+ activePointersRef.current.delete(event.pointerId);
4635
+ const remainingPointer = activePointersRef.current.values().next().value;
4636
+ if (remainingPointer) {
4637
+ dragStartRef.current = {
4638
+ x: remainingPointer.x - positionRef.current.x,
4639
+ y: remainingPointer.y - positionRef.current.y
4640
+ };
4641
+ setIsDragging(true);
4642
+ } else setIsDragging(false);
4643
+ }, []);
4644
+ const handleTouchStart = useCallback((event)=>{
4645
+ if (2 !== event.touches.length) return;
4646
+ initialPinchDistanceRef.current = getDistance(event.touches[0], event.touches[1]);
4647
+ initialPinchScaleRef.current = scaleRef.current;
4648
+ }, []);
4649
+ const handleTouchMove = useCallback((event)=>{
4650
+ if (2 !== event.touches.length || 0 === initialPinchDistanceRef.current) return;
4651
+ event.preventDefault();
4652
+ const distance = getDistance(event.touches[0], event.touches[1]);
4653
+ setScale(initialPinchScaleRef.current * (distance / initialPinchDistanceRef.current));
4654
+ }, [
4655
+ setScale
4656
+ ]);
4657
+ const handleTouchEnd = useCallback(()=>{
4658
+ initialPinchDistanceRef.current = 0;
4659
+ }, []);
4660
+ const handleWheel = useCallback((event)=>{
4661
+ const hasModifier = event.metaKey || event.ctrlKey;
4662
+ if (hasModifier) {
4663
+ event.preventDefault();
4664
+ setShowOverlay(false);
4665
+ setScale(scaleRef.current - event.deltaY * WHEEL_ZOOM_FACTOR);
4666
+ } else {
4667
+ setShowOverlay(true);
4668
+ clearTimeout(overlayTimeoutRef.current);
4669
+ overlayTimeoutRef.current = setTimeout(()=>{
4670
+ setShowOverlay(false);
4671
+ }, OVERLAY_TIMEOUT);
4672
+ }
4673
+ }, [
4674
+ setScale
4675
+ ]);
4676
+ useEffect(()=>{
4677
+ const viewport = viewportRef.current;
4678
+ if (!viewport) return;
4679
+ viewport.addEventListener('wheel', handleWheel, {
4680
+ passive: false
4681
+ });
4682
+ return ()=>{
4683
+ viewport.removeEventListener('wheel', handleWheel);
4684
+ };
4685
+ }, [
4686
+ handleWheel
4687
+ ]);
4688
+ useEffect(()=>()=>{
4689
+ clearTimeout(overlayTimeoutRef.current);
4690
+ }, []);
4691
+ const transform = useMemo(()=>`translate(${position.x}px, ${position.y}px) scale(${scale})`, [
4692
+ position,
4693
+ scale
4694
+ ]);
4695
+ const modifierKey = useMemo(()=>{
4696
+ if ("u" < typeof navigator) return 'Ctrl';
4697
+ return /Mac/i.test(navigator.userAgent) ? '⌘' : 'Ctrl';
4698
+ }, []);
4699
+ return {
4700
+ contentStyle: {
4701
+ transform,
4702
+ transition: isDragging ? 'none' : 'transform 0.1s ease-out'
4703
+ },
4704
+ cursor: isDragging ? 'grabbing' : 'grab',
4705
+ handlePointerDown,
4706
+ handlePointerEnd,
4707
+ handlePointerMove,
4708
+ handleTouchEnd,
4709
+ handleTouchMove,
4710
+ handleTouchStart,
4711
+ modifierKey,
4712
+ reset,
4713
+ showOverlay,
4714
+ viewportRef,
4715
+ zoomIn,
4716
+ zoomOut
4717
+ };
4718
+ }
4719
+ function ScalableContainer({ initialScale = 1, minScale = 0.1, maxScale = 4, showToolbar = false, onScaleChanged, onPositionChanged, onWheel, className, children, style, ...props }) {
4720
+ const { contentStyle, cursor, handlePointerDown, handlePointerEnd, handlePointerMove, handleTouchEnd, handleTouchMove, handleTouchStart, modifierKey, reset, showOverlay, viewportRef, zoomIn, zoomOut } = ScalableContainer_useLogic_useLogic({
4721
+ initialScale,
4722
+ minScale,
4723
+ maxScale,
4724
+ onScaleChanged,
4725
+ onPositionChanged
4726
+ });
4727
+ return /*#__PURE__*/ jsxs("div", {
4728
+ ref: viewportRef,
4729
+ "data-slot": "scalable-container",
4730
+ className: clsx(ScalableContainer_styles_css_viewport, className),
4731
+ style: {
4732
+ ...style,
4733
+ cursor
4734
+ },
4735
+ onWheel: onWheel,
4736
+ ...props,
4737
+ children: [
4738
+ showToolbar && /*#__PURE__*/ jsxs(ButtonGroup, {
4739
+ orientation: "vertical",
4740
+ className: toolbar,
4741
+ "aria-label": "Управление масштабом",
4742
+ children: [
4743
+ /*#__PURE__*/ jsx(Button_Button, {
4744
+ type: "button",
4745
+ onClick: zoomIn,
4746
+ size: "iconSmall",
4747
+ title: "Увеличить",
4748
+ "aria-label": "Увеличить",
4749
+ variant: "outline",
4750
+ children: /*#__PURE__*/ jsx(ZoomInIcon, {
4751
+ size: 16
4752
+ })
4753
+ }),
4754
+ /*#__PURE__*/ jsx(Button_Button, {
4755
+ type: "button",
4756
+ onClick: zoomOut,
4757
+ size: "iconSmall",
4758
+ title: "Уменьшить",
4759
+ "aria-label": "Уменьшить",
4760
+ variant: "outline",
4761
+ children: /*#__PURE__*/ jsx(ZoomOutIcon, {
4762
+ size: 16
4763
+ })
4764
+ }),
4765
+ /*#__PURE__*/ jsx(Button_Button, {
4766
+ type: "button",
4767
+ onClick: reset,
4768
+ size: "iconSmall",
4769
+ title: "Сбросить",
4770
+ "aria-label": "Сбросить",
4771
+ variant: "outline",
4772
+ children: /*#__PURE__*/ jsx(RotateCcwIcon, {
4773
+ size: 16
4774
+ })
4775
+ })
4776
+ ]
4777
+ }),
4778
+ /*#__PURE__*/ jsxs("div", {
4779
+ "data-slot": "scalable-container-overlay",
4780
+ className: ScalableContainer_styles_css_overlay,
4781
+ "data-visible": showOverlay,
4782
+ "aria-hidden": !showOverlay,
4783
+ children: [
4784
+ "Используйте ",
4785
+ modifierKey,
4786
+ " + колесо для масштабирования."
4787
+ ]
4788
+ }),
4789
+ /*#__PURE__*/ jsx("div", {
4790
+ "data-slot": "scalable-container-content",
4791
+ className: ScalableContainer_styles_css_content,
4792
+ style: contentStyle,
4793
+ onPointerDown: handlePointerDown,
4794
+ onPointerMove: handlePointerMove,
4795
+ onPointerUp: handlePointerEnd,
4796
+ onPointerCancel: handlePointerEnd,
4797
+ onTouchStart: handleTouchStart,
4798
+ onTouchMove: handleTouchMove,
4799
+ onTouchEnd: handleTouchEnd,
4800
+ children: children
4801
+ })
4802
+ ]
4803
+ });
4804
+ }
4527
4805
  var ScrollTopButton_styles_css_button = 'style__1ou2vjc0';
4528
4806
  var styles_css_visible = 'style__1ou2vjc1';
4529
4807
  function ScrollTopButton({ onClick, variant = 'outline', ...props }) {
@@ -5700,4 +5978,4 @@ const ToggleGroup = ({ value, onChange, options, size, className, label, multipl
5700
5978
  ]
5701
5979
  });
5702
5980
  };
5703
- export { Accordion_Accordion as Accordion, AlertDialog_AlertDialog as AlertDialog, Autocomplete, Avatar_Avatar as Avatar, Badge_Badge as Badge, Breadcrumb, ButtonGroup, Button_Button as Button, Button_buttonSizes as buttonSizes, Button_buttonVariants as buttonVariants, Calendar, Card, Carousel, Checkbox_Checkbox as Checkbox, CircularProgress, Collapsible_Collapsible as Collapsible, Combobox_Combobox as Combobox, ConfirmAction, ContentState, CopyTypography, DEFAULT_SEPARATOR, DEFAULT_SYMBOL, DESCRIPTION_ROOT_CLASSNAME, DashboardLayout, DataGrid, DataGridActionCell, DataGridSortHeader, DataList, DatePicker, Description_Description as Description, Dialog_Dialog as Dialog, Drawer_Drawer as Drawer, DropdownMenu, Empty_Empty as Empty, ImageCarousel, Image_Image as Image, InputGroup, InputOTP, Input_Input as Input, Label, MaskField, NOTIFICATION_POSITIONS, NOTIFY_CLASSNAME, Notification, NotificationContainer, OverflowTypography, PageLayout, Pagination, PeriodPicker, Placeholder, Popover_Popover as Popover, RadioGroupItem, RadioGroup_RadioGroup as RadioGroup, RangeInput, ScrollTopButton, Select_Select as Select, Sheet, Sidebar_Sidebar as Sidebar, SliderInput, Slider_Slider as Slider, Spinner, Switch_Switch as Switch, Tabs_Tabs as Tabs, TextField, Textarea_Textarea as Textarea, ToggleGroup, Tooltip_Tooltip as Tooltip, Typography, alignments, badgeVariants, calculateSize, constants_NotificationVariantTypes as NotificationVariantTypes, createHandle, displays, negativeSpacing, notification, spacing, styles_css_colors as colors, styles_css_variants as variants, theme, transforms, useComboboxAnchor, useDashboard, useIsMobile, useOverflowed, useSidebar, weights };
5981
+ export { Accordion_Accordion as Accordion, AlertDialog_AlertDialog as AlertDialog, Autocomplete, Avatar_Avatar as Avatar, Badge_Badge as Badge, Breadcrumb, ButtonGroup, Button_Button as Button, Button_buttonSizes as buttonSizes, Button_buttonVariants as buttonVariants, Calendar, Card, Carousel, Checkbox_Checkbox as Checkbox, CircularProgress, Collapsible_Collapsible as Collapsible, Combobox_Combobox as Combobox, ConfirmAction, ContentState, CopyTypography, DEFAULT_SEPARATOR, DEFAULT_SYMBOL, DESCRIPTION_ROOT_CLASSNAME, DashboardLayout, DataGrid, DataGridActionCell, DataGridSortHeader, DataList, DatePicker, Description_Description as Description, Dialog_Dialog as Dialog, Drawer_Drawer as Drawer, DropdownMenu, Empty_Empty as Empty, ImageCarousel, Image_Image as Image, InputGroup, InputOTP, Input_Input as Input, Label, MaskField, NOTIFICATION_POSITIONS, NOTIFY_CLASSNAME, Notification, NotificationContainer, OverflowTypography, PageLayout, Pagination, PeriodPicker, Placeholder, Popover_Popover as Popover, RadioGroupItem, RadioGroup_RadioGroup as RadioGroup, RangeInput, ScalableContainer, ScrollTopButton, Select_Select as Select, Sheet, Sidebar_Sidebar as Sidebar, SliderInput, Slider_Slider as Slider, Spinner, Switch_Switch as Switch, Tabs_Tabs as Tabs, TextField, Textarea_Textarea as Textarea, ToggleGroup, Tooltip_Tooltip as Tooltip, Typography, alignments, badgeVariants, calculateSize, constants_NotificationVariantTypes as NotificationVariantTypes, createHandle, displays, negativeSpacing, notification, spacing, styles_css_colors as colors, styles_css_variants as variants, theme, transforms, useComboboxAnchor, useDashboard, useIsMobile, useOverflowed, useSidebar, weights };
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardLayout.stories.d.ts","sourceRoot":"","sources":["../../src/stories/DashboardLayout.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;AASA,wBAOyC;AAOzC,eAAO,MAAM,OAAO,mCAsBnB,CAAC"}
1
+ {"version":3,"file":"DashboardLayout.stories.d.ts","sourceRoot":"","sources":["../../src/stories/DashboardLayout.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;AASA,wBAOyC;AAOzC,eAAO,MAAM,OAAO,mCA4BnB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ScalableContainer } from '../components/index.ts';
2
+ declare const _default: {
3
+ title: string;
4
+ component: typeof ScalableContainer;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ };
10
+ export default _default;
11
+ export declare function Basic(): import("react").JSX.Element;
12
+ export declare function WithToolbar(): import("react").JSX.Element;
13
+ export declare function InsideScrollablePage(): import("react").JSX.Element;
14
+ //# sourceMappingURL=ScalableContainer.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalableContainer.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ScalableContainer.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;;;;;;;;;AAGjD,wBAO2C;AAqB3C,wBAAgB,KAAK,gCAYpB;AAED,wBAAgB,WAAW,gCA2B1B;AAED,wBAAgB,oBAAoB,gCAoBnC"}
package/lib/styles.css CHANGED
@@ -3895,9 +3895,8 @@ a.outline__1af895x4:hover {
3895
3895
 
3896
3896
  .style__1hr0uh00 {
3897
3897
  scroll-behavior: smooth;
3898
- scrollbar-gutter: stable;
3899
3898
  height: auto;
3900
- padding: var(--spacing-4);
3899
+ padding: var(--spacing-2);
3901
3900
  grid-area: content;
3902
3901
  overflow: auto;
3903
3902
  }
@@ -3924,35 +3923,48 @@ a.outline__1af895x4:hover {
3924
3923
  }
3925
3924
 
3926
3925
  .style__nvcxbd0 {
3927
- padding: var(--spacing-4);
3926
+ padding: var(--spacing-2);
3928
3927
  grid-area: header;
3929
3928
  grid-template-columns: auto auto 1fr auto;
3930
3929
  grid-template-areas: "trigger title content actions";
3931
3930
  align-items: center;
3932
- padding-bottom: 0;
3933
3931
  display: grid;
3934
3932
  }
3935
3933
 
3934
+ .style__nvcxbd0 > div {
3935
+ align-items: center;
3936
+ display: flex;
3937
+ }
3938
+
3936
3939
  .style__nvcxbd1 {
3937
3940
  justify-content: flex-end;
3938
- align-items: center;
3939
3941
  column-gap: var(--spacing-2);
3940
- padding-left: var(--spacing-2);
3941
3942
  grid-area: actions;
3942
- display: flex;
3943
+ }
3944
+
3945
+ .style__nvcxbd1:not(:empty) {
3946
+ padding-left: var(--spacing-2);
3943
3947
  }
3944
3948
 
3945
3949
  .style__nvcxbd2 {
3946
- padding-right: var(--spacing-2);
3947
3950
  grid-area: trigger;
3948
3951
  }
3949
3952
 
3953
+ .style__nvcxbd2:not(:empty) {
3954
+ padding-right: var(--spacing-2);
3955
+ }
3956
+
3950
3957
  .style__nvcxbd3 {
3951
- padding-inline: var(--spacing-2);
3958
+ column-gap: var(--spacing-2);
3952
3959
  grid-area: title;
3953
3960
  }
3954
3961
 
3962
+ .style__nvcxbd3:not(:empty) {
3963
+ padding-right: var(--spacing-2);
3964
+ }
3965
+
3955
3966
  .style__nvcxbd4 {
3967
+ column-gap: var(--spacing-2);
3956
3968
  grid-area: content;
3957
3969
  }
3958
3970
 
@@ -4264,6 +4276,58 @@ a.outline__1af895x4:hover {
4264
4276
  }
4265
4277
  }
4266
4278
 
4279
+ .style__uxh2ml0 {
4280
+ touch-action: none;
4281
+ width: 100%;
4282
+ height: 100%;
4283
+ position: relative;
4284
+ overflow: hidden;
4285
+ }
4286
+
4287
+ .style__uxh2ml1 {
4288
+ top: 50%;
4289
+ right: var(--spacing-1);
4290
+ z-index: 1;
4291
+ opacity: .5;
4292
+ transition: opacity .2s ease-in-out;
4293
+ position: absolute;
4294
+ transform: translateY(-50%);
4295
+ }
4296
+
4297
+ .style__uxh2ml1:hover {
4298
+ opacity: 1;
4299
+ }
4300
+
4301
+ .style__uxh2ml2 {
4302
+ bottom: var(--spacing-4);
4303
+ z-index: 10;
4304
+ padding: var(--spacing-2) var(--spacing-4);
4305
+ border-radius: var(--borderRadius-sm);
4306
+ background-color: var(--colors-background-tooltip);
4307
+ color: var(--colors-foreground-primary);
4308
+ font-size: var(--fontSize-sm);
4309
+ opacity: 0;
4310
+ pointer-events: none;
4311
+ transition: opacity .2s ease-in-out;
4312
+ position: absolute;
4313
+ left: 50%;
4314
+ transform: translateX(-50%);
4315
+ }
4316
+
4317
+ .style__uxh2ml2[data-visible="true"] {
4318
+ opacity: 1;
4319
+ }
4320
+
4321
+ .style__uxh2ml3 {
4322
+ -webkit-user-select: none;
4323
+ user-select: none;
4324
+ justify-content: center;
4325
+ align-items: center;
4326
+ display: flex;
4327
+ position: absolute;
4328
+ inset: 0;
4329
+ }
4330
+
4267
4331
  .style__1ou2vjc0 {
4268
4332
  bottom: var(--spacing-5);
4269
4333
  width: 40px;
@@ -4840,6 +4904,7 @@ a.outline__1af895x4:hover {
4840
4904
 
4841
4905
  .style__1xiua9n1 {
4842
4906
  width: 100%;
4907
+ height: 100%;
4843
4908
  min-height: 100svh;
4844
4909
  display: flex;
4845
4910
  }
@@ -4946,7 +5011,7 @@ a.outline__1af895x4:hover {
4946
5011
 
4947
5012
  .style__1xiua9n2[data-variant="floating"] .style__1xiua9n6 {
4948
5013
  border: 1px solid var(--colors-border);
4949
- border-radius: var(--borderRadius-lg);
5014
+ border-radius: var(--borderRadius-md);
4950
5015
  box-shadow: var(--elevation-1);
4951
5016
  }
4952
5017
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@max-ts/kit",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./lib/index.mjs",
6
6
  "types": "./lib/index.d.ts",