cekat-ui 1.3.17 → 1.3.19

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/README.md CHANGED
@@ -6,7 +6,7 @@ A modern, lightweight **React UI component library** built with **TypeScript**,
6
6
 
7
7
  - Composable (compound components, Radix / react-aria-inspired)
8
8
  - Tree-shakeable (ESM + UMD, fully typed)
9
- - Framework-friendly (Next.js, Vite, and other React 18 apps)
9
+ - Framework-friendly (Next.js, Vite, and other React 18 and 19 apps)
10
10
 
11
11
  This repo uses **Yarn Classic** (`yarn.lock` v1).
12
12
 
@@ -39,8 +39,8 @@ Peer dependencies:
39
39
 
40
40
  ```json
41
41
  {
42
- "react": "^18.3.1",
43
- "react-dom": "^18.3.1"
42
+ "react": "^18.3.1 || ^19.0.0",
43
+ "react-dom": "^18.3.1 || ^19.0.0"
44
44
  }
45
45
  ```
46
46
 
@@ -170,16 +170,21 @@ yarn fmt:check
170
170
  yarn test-storybook --run
171
171
  yarn build:lib # ESM/UMD + dist/style.css
172
172
  yarn check:pack # dist artifacts, publint, attw
173
- yarn check:consumer # Next 14 smoke against the packed tarball
173
+ yarn check:consumer # React 18 / Next 14 smoke against the packed tarball
174
+ yarn check:consumer:react19 # React 19 / Next 15 smoke against the same tarball
174
175
  ```
175
176
 
177
+ CI runs the browser stories with both React 18 and React 19. Both consumer checks install the packed library without peer-dependency overrides, verify that the app and library resolve the same React runtime, typecheck the public API, build/prerender the main and editor pages, and exercise the installed library in Chromium (popover interaction and editor input) with no console or page errors. The React 19 fixture shares its pages and configuration with `fixtures/next-consumer`.
178
+
179
+ The UMD builds externalize the automatic JSX runtime as `ReactJSXRuntime`; script-tag consumers must provide that global alongside `React` and `ReactDOM`. Bundlers resolve `react/jsx-runtime` from the consuming app.
180
+
176
181
  `yarn fmt` / `yarn lint:fix` apply formatting and lint fixes. Pre-commit runs `lint-staged` (oxfmt).
177
182
 
178
183
  ---
179
184
 
180
185
  ## Tech stack
181
186
 
182
- - React 18 + TypeScript
187
+ - React 18 / 19 + TypeScript (developed and built with React 19)
183
188
  - Tailwind CSS 3 + class-variance-authority / clsx / tailwind-merge
184
189
  - react-aria-components (Button, tabs)
185
190
  - @tabler/icons-react
@@ -0,0 +1,3 @@
1
+ import { RichTextEditorProps } from './richTextEditor.types';
2
+ import * as React from 'react';
3
+ export declare const RichTextEditor: React.ForwardRefExoticComponent<RichTextEditorProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { RichTextEditor } from './RichTextEditor';
2
+ export type { RichTextEditorProps, RichTextFeature } from './richTextEditor.types';
@@ -0,0 +1,22 @@
1
+ export declare const richTextEditorWrapperStyles = "flex w-full flex-col gap-1";
2
+ export declare const richTextEditorLabelStyles: (props?: ({
3
+ invalid?: boolean | null | undefined;
4
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
+ export declare const richTextEditorDescriptionStyles = "text-caption-lg text-light-700";
6
+ export declare const richTextEditorShellStyles: (props?: ({
7
+ invalid?: boolean | null | undefined;
8
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
9
+ export declare const richTextToolbarStyles: string;
10
+ export declare const richTextToolbarGroupStyles = "flex shrink-0 items-center gap-1";
11
+ export declare const richTextToolbarSeparatorStyles = "mx-1 h-5 w-px shrink-0 bg-light-200 forced-colors:bg-[ButtonText]";
12
+ export declare const richTextToolbarControlStyles: string;
13
+ export declare const richTextEditorSurfaceStyles: string;
14
+ export declare const richTextEditorContentStyles: string;
15
+ export declare const richTextEditorPlaceholderStyles = "pointer-events-none absolute left-3 top-3 text-caption-lg leading-6 text-light-500";
16
+ export declare const richTextEditorSupportingStyles = "flex min-h-5 items-start justify-between gap-3";
17
+ export declare const richTextEditorHintStyles: (props?: ({
18
+ invalid?: boolean | null | undefined;
19
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
20
+ export declare const richTextEditorCounterStyles: (props?: ({
21
+ invalid?: boolean | null | undefined;
22
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -0,0 +1,22 @@
1
+ import { ClassValue } from 'clsx';
2
+ import type * as React from 'react';
3
+ export type RichTextFeature = 'history' | 'bold' | 'italic' | 'strikethrough' | 'heading' | 'quote' | 'link' | 'bulletList' | 'orderedList';
4
+ export interface RichTextEditorProps {
5
+ /** Markdown value. The spike deliberately supports one serialization contract. */
6
+ value: string;
7
+ /** Called with Markdown after an editor-authored document change. */
8
+ onChange: (value: string) => void;
9
+ label?: React.ReactNode;
10
+ description?: React.ReactNode;
11
+ hint?: React.ReactNode;
12
+ errorMessage?: React.ReactNode;
13
+ placeholder?: string;
14
+ features?: readonly RichTextFeature[];
15
+ maxLength?: number;
16
+ isRequired?: boolean;
17
+ isReadOnly?: boolean;
18
+ isDisabled?: boolean;
19
+ isInvalid?: boolean;
20
+ className?: ClassValue;
21
+ editorClassName?: ClassValue;
22
+ }
@@ -0,0 +1 @@
1
+ export * from './components/RichTextEditor/index.js';
@@ -0,0 +1 @@
1
+ export * from './components/RichTextEditor';