@dtkt/protoform 0.0.0-stage → 0.1.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.
- package/LICENSE +202 -0
- package/README.md +221 -2
- package/dist/base.d.ts +19 -0
- package/dist/comments.d.ts +9 -0
- package/dist/components/enum.d.ts +24 -0
- package/dist/components/field.d.ts +16 -0
- package/dist/components/frame.d.ts +6 -0
- package/dist/components/group.d.ts +25 -0
- package/dist/components/hooks.d.ts +18 -0
- package/dist/components/index.d.ts +13 -0
- package/dist/components/index.js +14 -0
- package/dist/components/list.d.ts +7 -0
- package/dist/components/map.d.ts +7 -0
- package/dist/components/message.d.ts +17 -0
- package/dist/components/oneof.d.ts +8 -0
- package/dist/components/protoform.d.ts +20 -0
- package/dist/components/scalar.d.ts +34 -0
- package/dist/components/select.d.ts +1 -0
- package/dist/components/submit.d.ts +8 -0
- package/dist/components/wkt.d.ts +20 -0
- package/dist/context-DSrebuNf.js +1024 -0
- package/dist/element.d.ts +23 -0
- package/dist/enum.d.ts +17 -0
- package/dist/env.d.ts +28 -0
- package/dist/favicon.ico +0 -0
- package/dist/field.d.ts +17 -0
- package/dist/gen/dtkt/protoform/v1beta1/protoform_pb.d.ts +463 -0
- package/dist/gen/dtkt/protoform/v1beta1/protoform_pb.js +6 -0
- package/dist/gen/google/api/field_behavior_pb.d.ts +133 -0
- package/dist/gen/google/api/field_behavior_pb.js +5 -0
- package/dist/icons.svg +24 -0
- package/dist/kit/bare.d.ts +3 -0
- package/dist/kit/context.d.ts +56 -0
- package/dist/kit/index.d.ts +4 -0
- package/dist/kit/index.js +1 -0
- package/dist/kit/tailwind/index.d.ts +7 -0
- package/dist/kit/tailwind/index.js +327 -0
- package/dist/kit/types.d.ts +126 -0
- package/dist/list.d.ts +29 -0
- package/dist/main.d.ts +13 -0
- package/dist/main.js +3 -0
- package/dist/map.d.ts +36 -0
- package/dist/message.d.ts +61 -0
- package/dist/oneof.d.ts +27 -0
- package/dist/path.d.ts +8 -0
- package/dist/protoform-DmMJ7LSw.js +835 -0
- package/dist/providers/env.d.ts +4 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.js +11 -0
- package/dist/providers/ui.d.ts +13 -0
- package/dist/scalar.d.ts +30 -0
- package/dist/store.d.ts +29 -0
- package/dist/styles.css +2 -0
- package/dist/ui-DGND0oTu.js +32 -0
- package/dist/wellknown.d.ts +10 -0
- package/package.json +141 -4
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z as e } from "../context-DSrebuNf.js";
|
|
2
|
+
import { t } from "../ui-DGND0oTu.js";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
// lib/providers/env.tsx
|
|
5
|
+
function r({ env: t, children: r }) {
|
|
6
|
+
return /* @__PURE__ */ n(e.Provider, {
|
|
7
|
+
value: t,
|
|
8
|
+
children: r
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export { r as EnvProvider, t as UIProvider };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
import { UIContextValue } from '../kit/context';
|
|
3
|
+
import { UIKit } from '../kit/types';
|
|
4
|
+
export type UIProviderProps = Partial<Omit<UIContextValue, "kit" | "messages">> & {
|
|
5
|
+
/** Primitives to render with. Missing ones fall back to the enclosing provider or the bare kit. */
|
|
6
|
+
kit?: Partial<UIKit>;
|
|
7
|
+
messages?: Partial<UIContextValue["messages"]>;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Chooses the UI used by every `Protoform` below it. Providers nest: inner
|
|
11
|
+
* providers override outer ones per primitive.
|
|
12
|
+
*/
|
|
13
|
+
export declare function UIProvider({ kit, renderers, resolve, messages, children }: PropsWithChildren<UIProviderProps>): import('react').JSX.Element;
|
package/dist/scalar.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { DescField, ScalarType } from '@bufbuild/protobuf';
|
|
2
|
+
import { ScalarValue } from '@bufbuild/protobuf/reflect';
|
|
3
|
+
import { BaseField } from './base';
|
|
4
|
+
export type ScalarFieldDesc = Extract<DescField, {
|
|
5
|
+
fieldKind: "scalar";
|
|
6
|
+
}>;
|
|
7
|
+
export declare class ScalarField extends BaseField<ScalarFieldDesc> {
|
|
8
|
+
get(): ScalarValue;
|
|
9
|
+
set(value: ScalarValue): void;
|
|
10
|
+
parse(str: string): void;
|
|
11
|
+
toString(): string;
|
|
12
|
+
}
|
|
13
|
+
export type ParseResult = {
|
|
14
|
+
ok: true;
|
|
15
|
+
value: ScalarValue;
|
|
16
|
+
} | {
|
|
17
|
+
ok: false;
|
|
18
|
+
error: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function isIntegerScalar(scalar: ScalarType): boolean;
|
|
21
|
+
export declare function isNumericScalar(scalar: ScalarType): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Parses user input into a value for the given scalar type. Empty input
|
|
24
|
+
* yields the zero value. 32-bit integers become numbers, 64-bit integers
|
|
25
|
+
* become bigints (as expected by the reflection API).
|
|
26
|
+
*/
|
|
27
|
+
export declare function tryParseScalar(scalar: ScalarType, input: string): ParseResult;
|
|
28
|
+
/** Like `tryParseScalar`, but throws on invalid input. */
|
|
29
|
+
export declare function parseScalar(scalar: ScalarType, str: string): ScalarValue;
|
|
30
|
+
export declare function formatScalar(scalar: ScalarType, value: ScalarValue): string;
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Violation } from '@bufbuild/protovalidate';
|
|
2
|
+
/**
|
|
3
|
+
* Shared, observable state for one message tree. The protobuf value itself is
|
|
4
|
+
* mutated in place, so the store exposes a revision counter that React can
|
|
5
|
+
* subscribe to (via `useSyncExternalStore`) to know when to re-render.
|
|
6
|
+
*/
|
|
7
|
+
export declare class FormStore {
|
|
8
|
+
private revision;
|
|
9
|
+
private dataRevision;
|
|
10
|
+
private listeners;
|
|
11
|
+
violations: Violation[];
|
|
12
|
+
private byPath;
|
|
13
|
+
private localErrors;
|
|
14
|
+
/** Set once the user attempted to submit; used to switch to eager validation. */
|
|
15
|
+
submitted: boolean;
|
|
16
|
+
markSubmitted(): void;
|
|
17
|
+
subscribe: (listener: () => void) => () => void;
|
|
18
|
+
/** Changes whenever data or errors change. */
|
|
19
|
+
snapshot: () => number;
|
|
20
|
+
/** Changes only when the message data changes. */
|
|
21
|
+
dataSnapshot: () => number;
|
|
22
|
+
dataChanged(): void;
|
|
23
|
+
setViolations(violations: Violation[]): void;
|
|
24
|
+
violationsAt(path: string): Violation[];
|
|
25
|
+
setLocalError(path: string, message: string | undefined): void;
|
|
26
|
+
localError(path: string): string | undefined;
|
|
27
|
+
hasLocalErrors(): boolean;
|
|
28
|
+
private emit;
|
|
29
|
+
}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-sm:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities;@layer protoform{:root{--pf-fg:light-dark(#18181b,#f4f4f5);--pf-muted:light-dark(#52525b,#a1a1aa);--pf-surface:light-dark(#fafafa,#202023);--pf-input-bg:light-dark(#fff,#27272a);--pf-border:light-dark(#d4d4d8,#3f3f46);--pf-border-strong:light-dark(#a1a1aa,#71717a);--pf-accent:light-dark(#4f46e5,#818cf8);--pf-accent-fg:light-dark(#fff,#0b0b0f);--pf-ring:light-dark(#6366f1,#a5b4fc);--pf-danger:light-dark(#dc2626,#f87171);--pf-danger-bg:light-dark(#fef2f2,#2a1517);--pf-radius:.375rem;--pf-font:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"}.pf-form,.pf-theme{color-scheme:light dark;color:var(--pf-fg);font-family:var(--pf-font)}:where([data-theme=light],.light) :is(.pf-form,.pf-theme),:is(.pf-form,.pf-theme):where([data-theme=light],.light){color-scheme:light}:where([data-theme=dark],.dark) :is(.pf-form,.pf-theme),:is(.pf-form,.pf-theme):where([data-theme=dark],.dark){color-scheme:dark}.pf-form{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.pf-stack{gap:calc(var(--spacing) * 4);flex-direction:column;display:flex}.pf-row{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.pf-row:has(textarea){align-items:flex-start}.pf-row-content{gap:calc(var(--spacing) * 2);flex:1;min-width:0;display:flex}.pf-row-content>*{flex:1;min-width:0}.pf-row-content>[data-pf=separator]{font-family:var(--font-mono);color:var(--pf-muted);flex:none;align-self:center}.pf-row-actions{min-width:calc(var(--spacing) * 10);justify-content:flex-end;align-items:center;gap:var(--spacing);flex-shrink:0;display:flex}.pf-field{gap:calc(var(--spacing) * 1.5);flex-direction:column;display:flex}.pf-field-body{gap:calc(var(--spacing) * 1.5)}.pf-label{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.pf-required{color:var(--pf-danger)}.pf-description{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--pf-muted);margin:0}.pf-errors{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--pf-danger);margin:0;padding:0;list-style-type:none}.pf-form [data-pf=empty]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--pf-muted);margin:0;font-style:italic}.pf-form [data-pf=actions]{margin-top:calc(var(--spacing) * 6);align-items:center;gap:calc(var(--spacing) * 2);display:flex}.pf-form [data-pf=form-errors]{margin-bottom:calc(var(--spacing) * 4);border-radius:var(--pf-radius);border-style:var(--tw-border-style);border-width:1px;border-color:var(--pf-danger);background-color:var(--pf-danger-bg);padding:calc(var(--spacing) * 3);color:var(--pf-danger);list-style-type:none}.pf-input,.pf-textarea,.pf-select,.pf-file-input{font:inherit;box-sizing:border-box;border-radius:var(--pf-radius);border-style:var(--tw-border-style);border-width:1px;border-color:var(--pf-border);background-color:var(--pf-input-bg);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);color:var(--pf-fg);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;outline-style:none;display:block}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input):hover{border-color:var(--pf-border-strong)}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[data-focus],:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input):focus-visible{border-color:var(--pf-ring);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--pf-ring)}@supports (color:color-mix(in lab, red, red)){:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[data-focus],:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input):focus-visible{--tw-ring-color:color-mix(in oklab, var(--pf-ring) 40%, transparent)}}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[data-invalid],:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[aria-invalid=true]{border-color:var(--pf-danger)}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[data-invalid][data-focus],:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[aria-invalid=true]:focus-visible{--tw-ring-color:var(--pf-danger)}@supports (color:color-mix(in lab, red, red)){:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[data-invalid][data-focus],:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[aria-invalid=true]:focus-visible{--tw-ring-color:color-mix(in oklab, var(--pf-danger) 40%, transparent)}}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input):disabled,:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[data-disabled]{cursor:not-allowed;opacity:.6}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input):read-only:not(select,[type=file]){background-color:var(--pf-surface)}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)[data-mono]{font-family:var(--font-mono);font-size:.8125rem}:is(.pf-input,.pf-textarea,.pf-select,.pf-file-input)::placeholder{color:var(--pf-muted);opacity:.7}.pf-textarea{min-height:calc(var(--spacing) * 20);resize:vertical}.pf-select-wrap{position:relative}.pf-select{appearance:none;padding-right:calc(var(--spacing) * 9)}.pf-chevron{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);color:var(--pf-muted)}.pf-select-wrap>.pf-chevron{pointer-events:none;top:50%;right:calc(var(--spacing) * 2.5);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);position:absolute}.pf-switch{box-sizing:border-box;height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 11);cursor:pointer;border-style:var(--tw-border-style);background-color:var(--pf-border-strong);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;border-width:0;border-radius:3.40282e38px;outline-style:none;flex-shrink:0;align-items:center;padding:0;display:inline-flex;position:relative}.pf-switch[data-checked]{background-color:var(--pf-accent)}.pf-switch[data-focus]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--pf-ring)}@supports (color:color-mix(in lab, red, red)){.pf-switch[data-focus]{--tw-ring-color:color-mix(in oklab, var(--pf-ring) 60%, transparent)}}.pf-switch[data-focus]{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.pf-switch[data-invalid]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--pf-danger)}@supports (color:color-mix(in lab, red, red)){.pf-switch[data-invalid]{--tw-ring-color:color-mix(in oklab, var(--pf-danger) 60%, transparent)}}.pf-switch[data-disabled]{cursor:not-allowed;opacity:.6}.pf-switch-thumb{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--color-white);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-radius:3.40282e38px;display:inline-block}.pf-switch[data-checked] .pf-switch-thumb{--tw-translate-x:calc(var(--spacing) * 5.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.pf-checkbox{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:1px;border-color:var(--pf-border-strong);background-color:var(--pf-input-bg);color:var(--pf-accent-fg);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;outline-style:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pf-checkbox[data-checked]{border-color:var(--pf-accent);background-color:var(--pf-accent)}.pf-checkbox[data-focus]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--pf-ring)}@supports (color:color-mix(in lab, red, red)){.pf-checkbox[data-focus]{--tw-ring-color:color-mix(in oklab, var(--pf-ring) 60%, transparent)}}.pf-checkbox[data-focus]{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.pf-checkbox[data-invalid]{border-color:var(--pf-danger)}.pf-checkbox[data-disabled]{cursor:not-allowed;opacity:.6}.pf-checkbox-mark{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5);opacity:0}.pf-checkbox[data-checked] .pf-checkbox-mark{opacity:1}.pf-check-label,.pf-radio-option{align-items:center;gap:calc(var(--spacing) * 2);display:inline-flex}.pf-radiogroup{column-gap:calc(var(--spacing) * 5);row-gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.pf-radio{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;border-style:var(--tw-border-style);border-width:1px;border-color:var(--pf-border-strong);background-color:var(--pf-input-bg);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;border-radius:3.40282e38px;outline-style:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pf-radio[data-checked]{border-color:var(--pf-accent)}.pf-radio[data-focus]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--pf-ring)}@supports (color:color-mix(in lab, red, red)){.pf-radio[data-focus]{--tw-ring-color:color-mix(in oklab, var(--pf-ring) 60%, transparent)}}.pf-radio[data-focus]{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.pf-radio[data-disabled]{cursor:not-allowed;opacity:.6}.pf-radio-dot{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5);--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y);background-color:var(--pf-accent);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-radius:3.40282e38px}.pf-radio[data-checked] .pf-radio-dot{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.pf-file-input{cursor:pointer;padding:calc(var(--spacing) * 1.5);color:var(--pf-muted)}.pf-file-input::file-selector-button{margin-right:calc(var(--spacing) * 3)}.pf-file-input::file-selector-button{cursor:pointer}.pf-file-input::file-selector-button{border-radius:var(--radius-sm)}.pf-file-input::file-selector-button{border-style:var(--tw-border-style);border-width:1px}.pf-file-input::file-selector-button{border-color:var(--pf-border)}.pf-file-input::file-selector-button{background-color:var(--pf-surface)}.pf-file-input::file-selector-button{padding-inline:calc(var(--spacing) * 3)}.pf-file-input::file-selector-button{padding-block:var(--spacing)}.pf-file-input::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.pf-file-input::file-selector-button{color:var(--pf-fg)}.pf-file-input{font-size:inherit}.pf-file-input::file-selector-button{font:inherit;font-weight:500}.pf-file-input:disabled{cursor:not-allowed}.pf-file-input:disabled::file-selector-button{cursor:not-allowed}.pf-button{font:inherit;box-sizing:border-box;cursor:pointer;justify-content:center;align-items:center;gap:var(--spacing);border-radius:var(--pf-radius);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-outline-style:none;background-color:#0000;border-width:1px;border-color:#0000;outline-style:none;display:inline-flex}.pf-button[data-size=sm]{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.pf-button[data-focus]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--pf-ring)}@supports (color:color-mix(in lab, red, red)){.pf-button[data-focus]{--tw-ring-color:color-mix(in oklab, var(--pf-ring) 60%, transparent)}}.pf-button[data-focus]{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.pf-button:disabled,.pf-button[data-disabled]{cursor:not-allowed;opacity:.5}.pf-button[data-variant=primary]{background-color:var(--pf-accent);color:var(--pf-accent-fg)}.pf-button[data-variant=primary]:not(:disabled):hover{opacity:.9}.pf-button[data-variant=secondary]{border-color:var(--pf-border);background-color:var(--pf-input-bg);color:var(--pf-fg)}.pf-button[data-variant=secondary]:not(:disabled):hover{background-color:var(--pf-surface)}.pf-button[data-variant=danger]{background-color:var(--pf-danger);color:var(--color-white)}.pf-button[data-variant=ghost]{color:var(--pf-muted)}.pf-button[data-variant=ghost]:not(:disabled):hover{background-color:var(--pf-surface);color:var(--pf-fg)}.pf-section{box-sizing:border-box;gap:calc(var(--spacing) * 2);flex-direction:column;min-width:0;margin:0;display:flex}.pf-section:not(:first-child),.pf-section+.pf-field{border-style:var(--tw-border-style);border-width:0;border-top-style:var(--tw-border-style);--tw-border-style:solid;border-style:solid;border-top-width:1px;border-color:var(--pf-border);padding-top:calc(var(--spacing) * 4)}.pf-section-header{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);display:flex}.pf-section-title{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.pf-section-actions{align-items:center;gap:var(--spacing);display:flex}.pf-section-toggle{font:inherit;cursor:pointer;align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-sm);border-style:var(--tw-border-style);color:var(--pf-fg);--tw-outline-style:none;background-color:#0000;border-width:0;outline-style:none;padding:0;display:inline-flex}.pf-section-toggle[data-focus]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--pf-ring)}@supports (color:color-mix(in lab, red, red)){.pf-section-toggle[data-focus]{--tw-ring-color:color-mix(in oklab, var(--pf-ring) 60%, transparent)}}.pf-section-toggle[data-focus]{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.pf-section-toggle .pf-chevron{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));rotate:-90deg}.pf-section-toggle[data-open] .pf-chevron{rotate:0deg}.pf-section-body,.pf-field-body{box-sizing:border-box;border-style:var(--tw-border-style);border-width:0;border-left-style:var(--tw-border-style);--tw-border-style:solid;border-style:solid;border-left-width:2px;border-color:var(--pf-border);padding-left:calc(var(--spacing) * 4);flex-direction:column;display:flex}.pf-section-body{gap:calc(var(--spacing) * 4)}.pf-section-body .pf-field-body{border-left-style:var(--tw-border-style);border-left-width:0;padding-left:0}}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { s as e, t } from "./context-DSrebuNf.js";
|
|
2
|
+
import { useMemo as n } from "react";
|
|
3
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
4
|
+
// lib/providers/ui.tsx
|
|
5
|
+
function i({ kit: i, renderers: a, resolve: o, messages: s, children: c }) {
|
|
6
|
+
let l = e(), u = n(() => ({
|
|
7
|
+
kit: {
|
|
8
|
+
...l.kit,
|
|
9
|
+
...i
|
|
10
|
+
},
|
|
11
|
+
renderers: {
|
|
12
|
+
...l.renderers,
|
|
13
|
+
...a
|
|
14
|
+
},
|
|
15
|
+
resolve: o ?? l.resolve,
|
|
16
|
+
messages: {
|
|
17
|
+
...l.messages,
|
|
18
|
+
...s
|
|
19
|
+
}
|
|
20
|
+
}), [
|
|
21
|
+
l,
|
|
22
|
+
i,
|
|
23
|
+
a,
|
|
24
|
+
o,
|
|
25
|
+
s
|
|
26
|
+
]);
|
|
27
|
+
return /* @__PURE__ */ r(t.Provider, {
|
|
28
|
+
value: u,
|
|
29
|
+
children: c
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export { i as t };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const ANY_TYPE_NAME = "google.protobuf.Any";
|
|
2
|
+
/** Well-known types edited as a single value in a text box. */
|
|
3
|
+
export declare function isTextWellKnown(typeName: string): boolean;
|
|
4
|
+
/** Well-known types that hold arbitrary JSON. */
|
|
5
|
+
export declare function isJsonWellKnown(typeName: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Well-known types edited as a single value (a text box, JSON editor, or the
|
|
8
|
+
* wrapped scalar) rather than as a nested form.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isInlineWellKnown(typeName: string): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,143 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dtkt/protoform",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "DataKit Protoform",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"datakit",
|
|
8
|
+
"dtkt",
|
|
9
|
+
"protobuf",
|
|
10
|
+
"protoform",
|
|
11
|
+
"react",
|
|
12
|
+
"forms"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://github.com/datakit-dev/protoform-es",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/datakit-dev/protoform-es/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/datakit-dev/protoform-es.git"
|
|
21
|
+
},
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "./dist/main.js",
|
|
24
|
+
"module": "./dist/main.js",
|
|
25
|
+
"types": "./dist/main.d.ts",
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"sideEffects": [
|
|
30
|
+
"**/*.css"
|
|
31
|
+
],
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/main.d.ts",
|
|
35
|
+
"import": "./dist/main.js"
|
|
36
|
+
},
|
|
37
|
+
"./components": {
|
|
38
|
+
"types": "./dist/components/index.d.ts",
|
|
39
|
+
"import": "./dist/components/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./providers": {
|
|
42
|
+
"types": "./dist/providers/index.d.ts",
|
|
43
|
+
"import": "./dist/providers/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./kit": {
|
|
46
|
+
"types": "./dist/kit/index.d.ts",
|
|
47
|
+
"import": "./dist/kit/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./kit/tailwind": {
|
|
50
|
+
"types": "./dist/kit/tailwind/index.d.ts",
|
|
51
|
+
"import": "./dist/kit/tailwind/index.js"
|
|
52
|
+
},
|
|
53
|
+
"./gen/*.js": {
|
|
54
|
+
"types": "./dist/gen/*.d.ts",
|
|
55
|
+
"import": "./dist/gen/*.js"
|
|
56
|
+
},
|
|
57
|
+
"./styles.css": "./dist/styles.css"
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"dev": "vite",
|
|
61
|
+
"build": "tsc -b && vite build && npm run build:css",
|
|
62
|
+
"build:css": "tailwindcss -i lib/styles/protoform.css -o dist/styles.css --minify",
|
|
63
|
+
"lint": "eslint .",
|
|
64
|
+
"test": "vitest run",
|
|
65
|
+
"test:watch": "vitest",
|
|
66
|
+
"test:coverage": "vitest run --coverage",
|
|
67
|
+
"clean": "rm -rf dist",
|
|
68
|
+
"gen": "buf generate",
|
|
69
|
+
"prepublishOnly": "npm run lint && npm test && npm run build"
|
|
70
|
+
},
|
|
71
|
+
"peerDependencies": {
|
|
72
|
+
"@bufbuild/protobuf": "^2.16.0",
|
|
73
|
+
"@bufbuild/protovalidate": "^1.3.0",
|
|
74
|
+
"@headlessui/react": "^2.0.0",
|
|
75
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
76
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
77
|
+
},
|
|
78
|
+
"peerDependenciesMeta": {
|
|
79
|
+
"@headlessui/react": {
|
|
80
|
+
"optional": true
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@babel/core": "^7.29.7",
|
|
85
|
+
"@buf/datakit-dev_dtkt-sdk.bufbuild_es": "^2.16.0-20261027090458-7143679e943c.1",
|
|
86
|
+
"@bufbuild/protobuf": "^2.16.0",
|
|
87
|
+
"@bufbuild/protovalidate": "^1.3.0",
|
|
88
|
+
"@eslint/js": "^10.0.1",
|
|
89
|
+
"@headlessui/react": "^2.2.10",
|
|
90
|
+
"@rolldown/plugin-babel": "^0.2.4",
|
|
91
|
+
"@tailwindcss/cli": "^4.3.3",
|
|
92
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
93
|
+
"@testing-library/dom": "^10.4.2",
|
|
94
|
+
"@testing-library/react": "^16.3.3",
|
|
95
|
+
"@testing-library/user-event": "^14.6.8",
|
|
96
|
+
"@types/babel__core": "^7.20.5",
|
|
97
|
+
"@types/node": "^24.19.2",
|
|
98
|
+
"@types/react": "^19.3.0",
|
|
99
|
+
"@types/react-dom": "^19.3.0",
|
|
100
|
+
"@vitejs/plugin-react": "^6.1.2",
|
|
101
|
+
"@vitest/coverage-v8": "^5.0.5",
|
|
102
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
103
|
+
"eslint": "^10.13.0",
|
|
104
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
105
|
+
"eslint-plugin-react-refresh": "^0.5.7",
|
|
106
|
+
"globals": "^17.13.0",
|
|
107
|
+
"jsdom": "^29.1.1",
|
|
108
|
+
"react": "^19.3.1",
|
|
109
|
+
"react-dom": "^19.3.1",
|
|
110
|
+
"tailwindcss": "^4.3.3",
|
|
111
|
+
"typescript": "~6.0.3",
|
|
112
|
+
"typescript-eslint": "^8.71.2",
|
|
113
|
+
"vite": "^8.3.5",
|
|
114
|
+
"vite-plugin-dts": "^5.1.2",
|
|
115
|
+
"vitest": "^5.0.5"
|
|
116
|
+
},
|
|
117
|
+
"dependencies": {
|
|
118
|
+
"@connectrpc/connect": "^2.2.0",
|
|
119
|
+
"@connectrpc/connect-web": "^2.2.0"
|
|
120
|
+
},
|
|
121
|
+
"typesVersions": {
|
|
122
|
+
"*": {
|
|
123
|
+
"components": [
|
|
124
|
+
"./dist/components/index.d.ts"
|
|
125
|
+
],
|
|
126
|
+
"providers": [
|
|
127
|
+
"./dist/providers/index.d.ts"
|
|
128
|
+
],
|
|
129
|
+
"kit": [
|
|
130
|
+
"./dist/kit/index.d.ts"
|
|
131
|
+
],
|
|
132
|
+
"kit/tailwind": [
|
|
133
|
+
"./dist/kit/tailwind/index.d.ts"
|
|
134
|
+
],
|
|
135
|
+
"gen/*.js": [
|
|
136
|
+
"./dist/gen/*.d.ts"
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"publishConfig": {
|
|
141
|
+
"access": "public"
|
|
142
|
+
}
|
|
143
|
+
}
|