@object-ui/components 17.5.0 → 17.6.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/CHANGELOG.md +1405 -0
- package/README.md +15 -7
- package/dist/custom/button-group.d.ts +1 -1
- package/dist/custom/character-count.d.ts +56 -0
- package/dist/custom/config-field-renderer.d.ts +1 -1
- package/dist/custom/config-panel-renderer.d.ts +3 -3
- package/dist/custom/export-progress-dialog.d.ts +1 -1
- package/dist/custom/filter-builder.d.ts +284 -4
- package/dist/custom/fullscreen-editor.d.ts +48 -2
- package/dist/custom/index.d.ts +28 -28
- package/dist/custom/item.d.ts +1 -1
- package/dist/custom/resizable.d.ts +1 -1
- package/dist/debug/index.d.ts +2 -2
- package/dist/index.css +22 -6
- package/dist/index.d.ts +21 -21
- package/dist/index.js +3958 -3650
- package/dist/index.umd.cjs +10 -6
- package/dist/lib/form-control-dom-props.d.ts +77 -0
- package/dist/lib/slider-thumb.d.ts +86 -0
- package/dist/notifications/index.d.ts +5 -5
- package/dist/renderers/basic/elements.d.ts +3 -3
- package/dist/renderers/basic/html-elements.d.ts +1 -1
- package/dist/renderers/form/validationRuleKeys.d.ts +45 -0
- package/dist/renderers/layout/react-page.d.ts +12 -2
- package/dist/share/index.d.ts +2 -2
- package/dist/ui/calendar.d.ts +1 -1
- package/dist/ui/carousel.d.ts +2 -2
- package/dist/ui/command.d.ts +2 -2
- package/dist/ui/form.d.ts +1 -1
- package/dist/ui/index.d.ts +47 -47
- package/dist/ui/pagination.d.ts +1 -1
- package/dist/ui/sidebar.d.ts +2 -2
- package/dist/ui/slider.d.ts +2 -1
- package/package.json +12 -12
- package/dist/custom/action-param-dialog.d.ts +0 -21
- package/dist/renderers/data-display/table.d.ts +0 -2
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { DomProps as CoreDomProps } from '@object-ui/core';
|
|
2
|
+
/**
|
|
3
|
+
* The DOM pass-through declaration for the `packages/components` renderers whose
|
|
4
|
+
* host element is a FORM CONTROL (objectui#5632).
|
|
5
|
+
*
|
|
6
|
+
* ## Why this exists at all, rather than a bare `toDomProps`
|
|
7
|
+
*
|
|
8
|
+
* `toDomProps` is the SDUI contract's executor and its key list is deliberately
|
|
9
|
+
* ELEMENT-AGNOSTIC — it cannot know what element the widget renders, so it
|
|
10
|
+
* carries only what is legal on every element. `name` and `disabled` are legal
|
|
11
|
+
* on form controls and nowhere else, which is exactly why `dom-props.ts` leaves
|
|
12
|
+
* them out: `name` on the `<div>` a container widget renders is one of the 14
|
|
13
|
+
* attributes objectui#4431 closed.
|
|
14
|
+
*
|
|
15
|
+
* The renderers in this group render the other case. Routing them through the
|
|
16
|
+
* bare SDUI list would strip `name` and `disabled` off real controls — and
|
|
17
|
+
* `packages/fields` already wrote down what that costs, in the same words, for
|
|
18
|
+
* the same two keys:
|
|
19
|
+
*
|
|
20
|
+
* > Withholding them would make this helper a silent styling- and
|
|
21
|
+
* > interactivity-dropper … That is a NEW silent failure of exactly the kind
|
|
22
|
+
* > the whitelist exists to prevent, so they are forwarded.
|
|
23
|
+
*
|
|
24
|
+
* It is worth being precise about how INVISIBLE that failure would be here.
|
|
25
|
+
* The gate that grades this change
|
|
26
|
+
* (`packages/app-shell/src/__tests__/widget-dom-leak-sweep.test.tsx`) reports
|
|
27
|
+
* attributes that ARRIVE illegitimately; it has no case for an attribute that
|
|
28
|
+
* stops arriving, and its canary node authors no `disabled` at all. So dropping
|
|
29
|
+
* `disabled` off every form control in the library would have moved not one
|
|
30
|
+
* number in this card's own acceptance evidence. The ledger predicted the same
|
|
31
|
+
* thing from the other side — its `BARE_SPREAD_MINUS_NAME` note says converging
|
|
32
|
+
* this group "will not change that attribute, only the thirteen around it" —
|
|
33
|
+
* and that prediction is only true if `name` is forwarded deliberately.
|
|
34
|
+
*
|
|
35
|
+
* ## One mechanism, three declarations
|
|
36
|
+
*
|
|
37
|
+
* This is the third declaration over the ONE mechanism in
|
|
38
|
+
* `@object-ui/core`'s `pickDomProps`, and it follows the pattern
|
|
39
|
+
* `@object-ui/fields` established rather than inventing one: the consuming
|
|
40
|
+
* package owns the key list its own contract implies, and calls the shared
|
|
41
|
+
* filter with it. The three, and what separates them:
|
|
42
|
+
*
|
|
43
|
+
* - `toDomProps` (`@object-ui/core`) — the SDUI baseline, element-agnostic.
|
|
44
|
+
* - `@object-ui/fields`' `toDomProps` — the baseline minus `role`, plus `name`
|
|
45
|
+
* and `disabled`; `FieldWidgetComponentProps` declares the closed set.
|
|
46
|
+
* - this one — the baseline PLUS `name` and `disabled`, nothing removed. It is
|
|
47
|
+
* a strict superset of the SDUI list, which the compile-time assertion below
|
|
48
|
+
* pins, so a key added to the shared set can never be quietly dropped here.
|
|
49
|
+
*
|
|
50
|
+
* Anything beyond this set is still the objectui#4435 route: DECLARE it and
|
|
51
|
+
* forward it by name. Do not reopen the spread (AGENTS.md #0.1 — fix the
|
|
52
|
+
* contract, never widen the consumer). `style` is the standing example, and it
|
|
53
|
+
* is forwarded by name at every call site for exactly that reason.
|
|
54
|
+
*/
|
|
55
|
+
declare const FORM_CONTROL_DOM_PASS_THROUGH_KEYS: readonly ["id", "className", "role", "tabIndex", "autoFocus", "onClick", "onBlur", "onFocus", "name", "disabled"];
|
|
56
|
+
type FormControlDomPassThroughKey = (typeof FORM_CONTROL_DOM_PASS_THROUGH_KEYS)[number];
|
|
57
|
+
/** The subset of `P` this declaration forwards, with each key's declared type. */
|
|
58
|
+
export type FormControlDomProps<P> = CoreDomProps<P, FormControlDomPassThroughKey>;
|
|
59
|
+
/**
|
|
60
|
+
* Keep only what may legitimately become an attribute on a FORM CONTROL, and
|
|
61
|
+
* drop everything else — the injected `schema`, the data-source adapter, the
|
|
62
|
+
* authored node's SDUI metadata, the flattened `props` container, and every
|
|
63
|
+
* declared prop the renderer already consumed off `schema`.
|
|
64
|
+
*
|
|
65
|
+
* Replaces the bare `{...rest}` spread in a form-control registration:
|
|
66
|
+
*
|
|
67
|
+
* ```tsx
|
|
68
|
+
* // before — forwards whatever `SchemaRenderer` handed it
|
|
69
|
+
* const { style, ...rest } = props;
|
|
70
|
+
* return <Input name={schema.name} {...rest} />;
|
|
71
|
+
*
|
|
72
|
+
* // after
|
|
73
|
+
* return <Input name={schema.name} {...toFormControlDomProps(rest)} style={style} />;
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function toFormControlDomProps<P extends object>(props: P): FormControlDomProps<P>;
|
|
77
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import type * as React from 'react';
|
|
9
|
+
/**
|
|
10
|
+
* The payload of the `slider-thumb-pass-through` local patch
|
|
11
|
+
* (`scripts/shadcn-local-patches.mjs`, objectui#3318).
|
|
12
|
+
*
|
|
13
|
+
* ## The defect this exists for
|
|
14
|
+
*
|
|
15
|
+
* A Radix slider's focusable control is the THUMB — `span[role="slider"]`,
|
|
16
|
+
* `tabindex="0"`, the element that carries `aria-valuenow` and the one a
|
|
17
|
+
* keyboard user and their screen reader actually land on. `Slider.Root` renders
|
|
18
|
+
* a role-less wrapper `span` and forwards every unrecognised prop to it, so a
|
|
19
|
+
* host's control-channel facts (`id`, `aria-invalid`, `aria-describedby`,
|
|
20
|
+
* `aria-labelledby`, `aria-required`) landed on a wrapper assistive technology
|
|
21
|
+
* never visits. Measured on `origin/main`, a real form + a required slider that
|
|
22
|
+
* had just failed validation:
|
|
23
|
+
*
|
|
24
|
+
* ```
|
|
25
|
+
* slider ariaInvalidTrue=[] labelFor=…-form-item -> DANGLING
|
|
26
|
+
* descConsumers=0 focusable=[span[slider],input]
|
|
27
|
+
* ids=[] <- no element of the row carried an id at all
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* This is the same shape objectui#3306 fixed for `select`, one step harder:
|
|
31
|
+
* there the focusable control is `SelectTrigger`, a component the primitive
|
|
32
|
+
* EXPORTS, so the widget could address it directly. `ui/slider.tsx` renders its
|
|
33
|
+
* thumb internally and exports only `Slider`, so the widget has no handle on
|
|
34
|
+
* the one element that must carry the state — hence a pass-through.
|
|
35
|
+
*
|
|
36
|
+
* ## Why a declared prop and not an implicit bridge
|
|
37
|
+
*
|
|
38
|
+
* The primitive could instead have COPIED a fixed list of `aria-*` keys from
|
|
39
|
+
* its own props down to the thumb. Rejected: the copy would leave the same keys
|
|
40
|
+
* on Root as well, and for `id` that is not a duplicate attribute but a
|
|
41
|
+
* duplicate DOM ID — `document.getElementById` answers with the wrapper, so a
|
|
42
|
+
* host `<label for>` would resolve to the non-focusable span and the bug would
|
|
43
|
+
* survive its own fix wearing a green test. Splitting is therefore mandatory,
|
|
44
|
+
* and once the caller must say which keys go where, saying it explicitly is
|
|
45
|
+
* strictly better than a list the caller cannot see (AGENTS.md #0.1: one strict
|
|
46
|
+
* contract, no consumer-side guessing).
|
|
47
|
+
*
|
|
48
|
+
* ## Where the split is decided
|
|
49
|
+
*
|
|
50
|
+
* Not here — this only routes. The widget decides, and `SliderField` mirrors
|
|
51
|
+
* `SelectField`'s #3306 split exactly: `name` and `disabled` stay on Root (Root
|
|
52
|
+
* owns the hidden form input and is the single disabled authority), everything
|
|
53
|
+
* else in the DOM pass-through whitelist goes to the thumb.
|
|
54
|
+
*/
|
|
55
|
+
/** Props the `Slider` wrapper hands to its internal `SliderPrimitive.Thumb`. */
|
|
56
|
+
export interface SliderThumbPassThrough {
|
|
57
|
+
/**
|
|
58
|
+
* Forwarded verbatim onto the focusable `span[role="slider"]`.
|
|
59
|
+
*
|
|
60
|
+
* Deliberately typed as the DOM attribute surface rather than
|
|
61
|
+
* `ComponentPropsWithoutRef<typeof SliderPrimitive.Thumb>`: this module must
|
|
62
|
+
* not import the primitive (it is consumed BY the no-touch file, and a cycle
|
|
63
|
+
* through it would be a fragile thing to hang a sync patch on), and the thumb
|
|
64
|
+
* is a plain `span` as far as every key a host delivers is concerned.
|
|
65
|
+
*/
|
|
66
|
+
thumbProps?: React.HTMLAttributes<HTMLSpanElement> & {
|
|
67
|
+
id?: string;
|
|
68
|
+
tabIndex?: number;
|
|
69
|
+
'aria-label'?: string;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Route a `Slider`'s props to the two elements that need them.
|
|
74
|
+
*
|
|
75
|
+
* `thumbProps` is REMOVED from the root half — leaving it there would put
|
|
76
|
+
* `thumbprops="[object Object]"` on the wrapper span, which is exactly the leak
|
|
77
|
+
* objectui#3291's sweep exists to catch.
|
|
78
|
+
*
|
|
79
|
+
* The pre-existing `aria-label` bridge is preserved and applied FIRST, so a
|
|
80
|
+
* caller that passes both keeps the explicit `thumbProps` value; nothing about
|
|
81
|
+
* the attribute's previous behaviour changes for callers that pass neither.
|
|
82
|
+
*/
|
|
83
|
+
export declare function splitSliderThumbProps<P extends Record<string, unknown>>(props: P): {
|
|
84
|
+
root: Omit<P, 'thumbProps'>;
|
|
85
|
+
thumb: Record<string, unknown>;
|
|
86
|
+
};
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
* Every one of these used to be handed to `onToast` regardless of type, so all
|
|
20
20
|
* five looked identical (#3014).
|
|
21
21
|
*/
|
|
22
|
-
export { NotificationBanners, type NotificationBannersProps } from './NotificationBanners';
|
|
23
|
-
export { NotificationSnackbar, type NotificationSnackbarProps } from './NotificationSnackbar';
|
|
24
|
-
export { NotificationAlerts, type NotificationAlertsProps } from './NotificationAlerts';
|
|
25
|
-
export { NotificationInline, type NotificationInlineProps } from './NotificationInline';
|
|
26
|
-
export { NOTIFICATION_ACTION_BUTTON_VARIANTS, NOTIFICATION_POSITION_CLASSES, NOTIFICATION_SEVERITY_STYLES, notificationActionVariant, notificationIcon, notificationSeverityStyle, type NotificationSeverityStyle, } from './severity';
|
|
22
|
+
export { NotificationBanners, type NotificationBannersProps } from './NotificationBanners.js';
|
|
23
|
+
export { NotificationSnackbar, type NotificationSnackbarProps } from './NotificationSnackbar.js';
|
|
24
|
+
export { NotificationAlerts, type NotificationAlertsProps } from './NotificationAlerts.js';
|
|
25
|
+
export { NotificationInline, type NotificationInlineProps } from './NotificationInline.js';
|
|
26
|
+
export { NOTIFICATION_ACTION_BUTTON_VARIANTS, NOTIFICATION_POSITION_CLASSES, NOTIFICATION_SEVERITY_STYLES, notificationActionVariant, notificationIcon, notificationSeverityStyle, type NotificationSeverityStyle, } from './severity.js';
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
* - element:divider (no-props separator)
|
|
16
16
|
* - ElementButtonProps -> element:button
|
|
17
17
|
*
|
|
18
|
-
* Heavier interactive elements (element:
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* Heavier interactive elements (element:form) live in their owning plugins and
|
|
19
|
+
* are left to those packages. element:record_picker — which writes its
|
|
20
|
+
* selection into a page variable — ships alongside in `./record-picker`.
|
|
21
21
|
*
|
|
22
22
|
* All props are read off `schema.properties` per the spec's
|
|
23
23
|
* `UIComponent.properties` convention; `schema.props` is also accepted
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Safe native HTML element passthrough renderers (ADR: kind:'html').
|
|
9
9
|
*
|
|
10
|
-
* A `kind:'html'` page is authored as a constrained JSX
|
|
10
|
+
* A `kind:'html'` page is authored as a constrained JSX string that is
|
|
11
11
|
* PARSED (never executed) into the SDUI tree. For that tier to live up to its
|
|
12
12
|
* name, the everyday HTML tags an author reaches for — headings, paragraphs,
|
|
13
13
|
* lists, links, images, emphasis — must each resolve to a renderer (otherwise
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The validation-rule names react-hook-form actually RUNS (objectui#5099).
|
|
10
|
+
*
|
|
11
|
+
* react-hook-form's field validator destructures a FIXED key set off the
|
|
12
|
+
* field descriptor and silently drops every other key. From the installed
|
|
13
|
+
* 7.85.0 bundle (`dist/index.cjs.js`, minified):
|
|
14
|
+
*
|
|
15
|
+
* const{ref:c,refs:f,required:m,maxLength:y,minLength:p,min:g,max:b,
|
|
16
|
+
* pattern:V,validate:A,name:x,valueAsNumber:S,mount:k}=e._f
|
|
17
|
+
*
|
|
18
|
+
* Of those twelve, seven are authorable validation rules — the rest are
|
|
19
|
+
* field-descriptor internals react-hook-form writes itself and an author
|
|
20
|
+
* never supplies through `FieldValidationRules`. Any rule name outside the
|
|
21
|
+
* seven — a misspelled `minlength`, an invented `email`, the numeric keys
|
|
22
|
+
* left by spreading an ARRAY into `validation` — is dropped without a trace:
|
|
23
|
+
* the field renders, the form looks validated, and the rule never runs. The
|
|
24
|
+
* form renderer reports such names loudly (dev-time `console.error`; see
|
|
25
|
+
* `form.tsx`).
|
|
26
|
+
*
|
|
27
|
+
* Both lists are PINNED against the installed react-hook-form bundle by
|
|
28
|
+
* `__tests__/rhf-recognized-rule-keys.test.ts`, which re-derives the
|
|
29
|
+
* destructured set from `dist/index.cjs.js` at test time. A react-hook-form
|
|
30
|
+
* bump that changes the set turns that test red — forcing a human to re-sort
|
|
31
|
+
* the new key into one of these two lists — instead of silently rotting the
|
|
32
|
+
* diagnostic.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Keys react-hook-form's validator destructures that are NOT authorable
|
|
36
|
+
* rules: descriptor internals the library maintains itself.
|
|
37
|
+
*/
|
|
38
|
+
export declare const RHF_DESCRIPTOR_NON_RULE_KEYS: readonly string[];
|
|
39
|
+
/**
|
|
40
|
+
* The authorable rule names react-hook-form's validator reads. Exactly the
|
|
41
|
+
* declared key set of `FieldValidationRules` in `@object-ui/types` —
|
|
42
|
+
* declared = enforced; anything else in a field's `validation` object is a
|
|
43
|
+
* bug in the metadata, not a rule.
|
|
44
|
+
*/
|
|
45
|
+
export declare const RHF_RECOGNIZED_RULE_KEYS: ReadonlySet<string>;
|
|
@@ -21,11 +21,21 @@
|
|
|
21
21
|
* - `React` — so authors can call hooks.
|
|
22
22
|
* - the PUBLIC data blocks — `<ObjectGrid>`, `<ObjectForm>`, charts, metrics…
|
|
23
23
|
* each as a prop-driven wrapper that renders via SchemaRenderer. Layout is
|
|
24
|
-
* left to plain HTML
|
|
25
|
-
*
|
|
24
|
+
* left to plain HTML (React's strength); only the data blocks that can't be
|
|
25
|
+
* expressed in HTML are injected.
|
|
26
26
|
* - `Block` — escape hatch: `<Block type="object-grid" .../>`.
|
|
27
27
|
* - `useAdapter` — live data hook: query/create/update objects.
|
|
28
28
|
* - `data` / `variables` — page data + local variables, for convenience.
|
|
29
|
+
*
|
|
30
|
+
* Styling — page source is metadata, not build input. A react page styles with
|
|
31
|
+
* inline `style` objects using `hsl(var(--token))` theme colors; overlays render
|
|
32
|
+
* through `<ObjectForm formType="drawer"|"modal">` rather than a hand-rolled
|
|
33
|
+
* `fixed inset-0` backdrop. Do NOT author Tailwind utility classes in page
|
|
34
|
+
* `source`: `source` is runtime metadata, the console's Tailwind is compiled at
|
|
35
|
+
* build time by scanning the console's own `src`, and there is no safelist — an
|
|
36
|
+
* authored utility class silently produces no CSS. `os validate` reports it as
|
|
37
|
+
* `page-source-className-tailwind`. (ADR-0065; ADR-0080's 2026-06-30 amendment;
|
|
38
|
+
* see `content/docs/guide/react-pages.md`.)
|
|
29
39
|
*/
|
|
30
40
|
import * as React from 'react';
|
|
31
41
|
export declare const ReactKindPage: React.FC<{
|
package/dist/share/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ShareDialog, type ShareDialogProps, type ShareLink, type ShareLinkAudience, type ShareLinkPermission, } from './ShareDialog';
|
|
2
|
-
export { default } from './ShareDialog';
|
|
1
|
+
export { ShareDialog, type ShareDialogProps, type ShareLink, type ShareLinkAudience, type ShareLinkPermission, } from './ShareDialog.js';
|
|
2
|
+
export { default } from './ShareDialog.js';
|
package/dist/ui/calendar.d.ts
CHANGED
package/dist/ui/carousel.d.ts
CHANGED
|
@@ -20,6 +20,6 @@ type CarouselProps = {
|
|
|
20
20
|
declare const Carousel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & CarouselProps & React.RefAttributes<HTMLDivElement>>;
|
|
21
21
|
declare const CarouselContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
22
22
|
declare const CarouselItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
-
declare const CarouselPrevious: React.ForwardRefExoticComponent<Omit<import('./button').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
-
declare const CarouselNext: React.ForwardRefExoticComponent<Omit<import('./button').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
23
|
+
declare const CarouselPrevious: React.ForwardRefExoticComponent<Omit<import('./button.js').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
declare const CarouselNext: React.ForwardRefExoticComponent<Omit<import('./button.js').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
25
25
|
export { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, };
|
package/dist/ui/command.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DialogProps } from '@radix-ui/react-dialog';
|
|
2
|
-
import { DialogContent } from './dialog';
|
|
2
|
+
import { DialogContent } from './dialog.js';
|
|
3
3
|
/**
|
|
4
4
|
* ObjectUI
|
|
5
5
|
* Copyright (c) 2024-present ObjectStack Inc.
|
|
@@ -49,7 +49,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
|
|
|
49
49
|
ref?: React.Ref<HTMLInputElement>;
|
|
50
50
|
} & {
|
|
51
51
|
asChild?: boolean;
|
|
52
|
-
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "
|
|
52
|
+
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "value" | "type"> & {
|
|
53
53
|
value?: string;
|
|
54
54
|
onValueChange?: (search: string) => void;
|
|
55
55
|
} & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
package/dist/ui/form.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ declare const useFormField: () => {
|
|
|
15
15
|
isDirty: boolean;
|
|
16
16
|
isTouched: boolean;
|
|
17
17
|
isValidating: boolean;
|
|
18
|
-
error?: import('react-hook-form').FieldError;
|
|
18
|
+
error?: import('react-hook-form').FieldError | undefined;
|
|
19
19
|
id: string;
|
|
20
20
|
name: string;
|
|
21
21
|
formItemId: string;
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -5,50 +5,50 @@
|
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
export * from './accordion';
|
|
9
|
-
export * from './alert-dialog';
|
|
10
|
-
export * from './alert';
|
|
11
|
-
export * from './aspect-ratio';
|
|
12
|
-
export * from './avatar';
|
|
13
|
-
export * from './badge';
|
|
14
|
-
export * from './breadcrumb';
|
|
15
|
-
export * from './button';
|
|
16
|
-
export * from './calendar';
|
|
17
|
-
export * from './card';
|
|
18
|
-
export * from './carousel';
|
|
19
|
-
export * from './chart';
|
|
20
|
-
export * from './checkbox';
|
|
21
|
-
export * from './collapsible';
|
|
22
|
-
export * from './command';
|
|
23
|
-
export * from './context-menu';
|
|
24
|
-
export * from './dialog';
|
|
25
|
-
export * from './drawer';
|
|
26
|
-
export * from './dropdown-menu';
|
|
27
|
-
export * from './form';
|
|
28
|
-
export * from './hover-card';
|
|
29
|
-
export * from './input-otp';
|
|
30
|
-
export * from './input';
|
|
31
|
-
export * from './label';
|
|
32
|
-
export * from './menubar';
|
|
33
|
-
export * from './navigation-menu';
|
|
34
|
-
export * from './pagination';
|
|
35
|
-
export * from './popover';
|
|
36
|
-
export * from './progress';
|
|
37
|
-
export * from './radio-group';
|
|
38
|
-
export * from './scroll-area';
|
|
39
|
-
export * from './select';
|
|
40
|
-
export * from './separator';
|
|
41
|
-
export * from './sheet';
|
|
42
|
-
export * from './sidebar';
|
|
43
|
-
export * from './skeleton';
|
|
44
|
-
export * from './slider';
|
|
45
|
-
export * from './sonner';
|
|
46
|
-
export { Toaster } from './sonner';
|
|
47
|
-
export * from './switch';
|
|
48
|
-
export * from './table';
|
|
49
|
-
export * from './tabs';
|
|
50
|
-
export * from './textarea';
|
|
51
|
-
export * from './toggle-group';
|
|
52
|
-
export * from './toggle';
|
|
53
|
-
export * from './tooltip';
|
|
54
|
-
export * from './typography';
|
|
8
|
+
export * from './accordion.js';
|
|
9
|
+
export * from './alert-dialog.js';
|
|
10
|
+
export * from './alert.js';
|
|
11
|
+
export * from './aspect-ratio.js';
|
|
12
|
+
export * from './avatar.js';
|
|
13
|
+
export * from './badge.js';
|
|
14
|
+
export * from './breadcrumb.js';
|
|
15
|
+
export * from './button.js';
|
|
16
|
+
export * from './calendar.js';
|
|
17
|
+
export * from './card.js';
|
|
18
|
+
export * from './carousel.js';
|
|
19
|
+
export * from './chart.js';
|
|
20
|
+
export * from './checkbox.js';
|
|
21
|
+
export * from './collapsible.js';
|
|
22
|
+
export * from './command.js';
|
|
23
|
+
export * from './context-menu.js';
|
|
24
|
+
export * from './dialog.js';
|
|
25
|
+
export * from './drawer.js';
|
|
26
|
+
export * from './dropdown-menu.js';
|
|
27
|
+
export * from './form.js';
|
|
28
|
+
export * from './hover-card.js';
|
|
29
|
+
export * from './input-otp.js';
|
|
30
|
+
export * from './input.js';
|
|
31
|
+
export * from './label.js';
|
|
32
|
+
export * from './menubar.js';
|
|
33
|
+
export * from './navigation-menu.js';
|
|
34
|
+
export * from './pagination.js';
|
|
35
|
+
export * from './popover.js';
|
|
36
|
+
export * from './progress.js';
|
|
37
|
+
export * from './radio-group.js';
|
|
38
|
+
export * from './scroll-area.js';
|
|
39
|
+
export * from './select.js';
|
|
40
|
+
export * from './separator.js';
|
|
41
|
+
export * from './sheet.js';
|
|
42
|
+
export * from './sidebar.js';
|
|
43
|
+
export * from './skeleton.js';
|
|
44
|
+
export * from './slider.js';
|
|
45
|
+
export * from './sonner.js';
|
|
46
|
+
export { Toaster } from './sonner.js';
|
|
47
|
+
export * from './switch.js';
|
|
48
|
+
export * from './table.js';
|
|
49
|
+
export * from './tabs.js';
|
|
50
|
+
export * from './textarea.js';
|
|
51
|
+
export * from './toggle-group.js';
|
|
52
|
+
export * from './toggle.js';
|
|
53
|
+
export * from './tooltip.js';
|
|
54
|
+
export * from './typography.js';
|
package/dist/ui/pagination.d.ts
CHANGED
package/dist/ui/sidebar.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
|
-
import { TooltipContent } from './tooltip';
|
|
2
|
+
import { TooltipContent } from './tooltip.js';
|
|
3
3
|
/**
|
|
4
4
|
* ObjectUI
|
|
5
5
|
* Copyright (c) 2024-present ObjectStack Inc.
|
|
@@ -28,7 +28,7 @@ declare const Sidebar: React.ForwardRefExoticComponent<Omit<React.ClassAttribute
|
|
|
28
28
|
variant?: "sidebar" | "floating" | "inset";
|
|
29
29
|
collapsible?: "offcanvas" | "icon" | "none";
|
|
30
30
|
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
-
declare const SidebarTrigger: React.ForwardRefExoticComponent<Omit<import('./button').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
31
|
+
declare const SidebarTrigger: React.ForwardRefExoticComponent<Omit<import('./button.js').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
32
32
|
declare const SidebarRail: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
33
33
|
declare const SidebarInset: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
34
34
|
declare const SidebarInput: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
package/dist/ui/slider.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SliderThumbPassThrough } from '../lib/slider-thumb.js';
|
|
1
2
|
/**
|
|
2
3
|
* ObjectUI
|
|
3
4
|
* Copyright (c) 2024-present ObjectStack Inc.
|
|
@@ -7,5 +8,5 @@
|
|
|
7
8
|
*/
|
|
8
9
|
import * as React from "react";
|
|
9
10
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
10
|
-
declare const Slider: React.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
|
+
declare const Slider: React.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & React.RefAttributes<HTMLSpanElement>, "ref"> & SliderThumbPassThrough & React.RefAttributes<HTMLSpanElement>>;
|
|
11
12
|
export { Slider };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/components",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Standard UI component library for Object UI, built with Shadcn UI + Tailwind CSS",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"./style.css": "./dist/index.css"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@objectstack/spec": "^17.0.0
|
|
29
|
+
"@objectstack/spec": "^17.0.0",
|
|
30
30
|
"@radix-ui/react-accordion": "^1.2.20",
|
|
31
31
|
"@radix-ui/react-alert-dialog": "^1.1.23",
|
|
32
32
|
"@radix-ui/react-aspect-ratio": "^1.1.15",
|
|
@@ -60,22 +60,22 @@
|
|
|
60
60
|
"date-fns": "^4.4.0",
|
|
61
61
|
"embla-carousel-react": "^8.6.0",
|
|
62
62
|
"input-otp": "^1.4.2",
|
|
63
|
-
"lucide-react": "^1.
|
|
63
|
+
"lucide-react": "^1.31.0",
|
|
64
64
|
"next-themes": "^0.4.6",
|
|
65
65
|
"react-day-picker": "^10.0.1",
|
|
66
|
-
"react-hook-form": "^7.
|
|
66
|
+
"react-hook-form": "^7.85.0",
|
|
67
67
|
"react-resizable-panels": "^4.12.2",
|
|
68
68
|
"recharts": "3.10.1",
|
|
69
|
-
"sonner": "^2.0.
|
|
69
|
+
"sonner": "^2.0.8",
|
|
70
70
|
"tailwind-merge": "^3.6.0",
|
|
71
71
|
"tailwindcss-animate": "^1.0.7",
|
|
72
72
|
"vaul": "^1.1.2",
|
|
73
|
-
"@object-ui/core": "17.
|
|
74
|
-
"@object-ui/i18n": "17.
|
|
75
|
-
"@object-ui/react": "17.
|
|
76
|
-
"@object-ui/
|
|
77
|
-
"@object-ui/sdui-parser": "17.
|
|
78
|
-
"@object-ui/
|
|
73
|
+
"@object-ui/core": "17.6.0",
|
|
74
|
+
"@object-ui/i18n": "17.6.0",
|
|
75
|
+
"@object-ui/react": "17.6.0",
|
|
76
|
+
"@object-ui/types": "17.6.0",
|
|
77
|
+
"@object-ui/sdui-parser": "17.6.0",
|
|
78
|
+
"@object-ui/react-runtime": "17.6.0"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"@vitejs/plugin-react": "^6.0.5",
|
|
91
91
|
"autoprefixer": "^10.5.4",
|
|
92
92
|
"postcss": "^8.5.26",
|
|
93
|
-
"shadcn": "^4.
|
|
93
|
+
"shadcn": "^4.18.0",
|
|
94
94
|
"tailwindcss": "^4.3.3",
|
|
95
95
|
"typescript": "^6.0.3",
|
|
96
96
|
"vite": "^8.2.1",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { ActionParamDef } from '@object-ui/core';
|
|
3
|
-
export interface ActionParamDialogProps {
|
|
4
|
-
/** The param definitions to render */
|
|
5
|
-
params: ActionParamDef[];
|
|
6
|
-
/** Whether the dialog is open */
|
|
7
|
-
open: boolean;
|
|
8
|
-
/** Called when the user submits the form */
|
|
9
|
-
onSubmit: (values: Record<string, any>) => void;
|
|
10
|
-
/** Called when the user cancels */
|
|
11
|
-
onCancel: () => void;
|
|
12
|
-
/** Dialog title */
|
|
13
|
-
title?: string;
|
|
14
|
-
/** Dialog description */
|
|
15
|
-
description?: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* ActionParamDialog renders a dialog with form fields for each ActionParam.
|
|
19
|
-
* It collects user input and returns the values on submit.
|
|
20
|
-
*/
|
|
21
|
-
export declare const ActionParamDialog: React.FC<ActionParamDialogProps>;
|