@proyecto-viviana/solidaria-components 0.4.0 → 0.5.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/dist/ActionBar.d.ts.map +1 -1
- package/dist/ActionBar.js +2 -11
- package/dist/ActionBar.js.map +1 -1
- package/dist/ActionBar.jsx +2 -11
- package/dist/ActionBar.jsx.map +1 -1
- package/dist/ActionGroup.d.ts.map +1 -1
- package/dist/ActionGroup.js +1 -1
- package/dist/ActionGroup.js.map +1 -1
- package/dist/ActionGroup.jsx +1 -1
- package/dist/ActionGroup.jsx.map +1 -1
- package/dist/Autocomplete.d.ts +2 -2
- package/dist/Autocomplete.d.ts.map +1 -1
- package/dist/Autocomplete.js +7 -7
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Autocomplete.jsx +7 -7
- package/dist/Autocomplete.jsx.map +1 -1
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +18 -18
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs.jsx +21 -26
- package/dist/Breadcrumbs.jsx.map +1 -1
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +100 -65
- package/dist/Calendar.js.map +1 -1
- package/dist/Calendar.jsx +10 -1
- package/dist/Calendar.jsx.map +1 -1
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +15 -18
- package/dist/Color.js.map +1 -1
- package/dist/Color.jsx +15 -19
- package/dist/Color.jsx.map +1 -1
- package/dist/ComboBox.d.ts +4 -0
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +21 -13
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBox.jsx +23 -13
- package/dist/ComboBox.jsx.map +1 -1
- package/dist/DateField.d.ts +11 -2
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField2.js +237 -234
- package/dist/DateField2.js.map +1 -1
- package/dist/DateField2.jsx +134 -97
- package/dist/DateField2.jsx.map +1 -1
- package/dist/DatePicker.d.ts +42 -3
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +6 -990
- package/dist/DatePicker.jsx +6 -681
- package/dist/DatePicker2.js +1171 -0
- package/dist/DatePicker2.js.map +1 -0
- package/dist/DatePicker2.jsx +820 -0
- package/dist/DatePicker2.jsx.map +1 -0
- package/dist/DateRangePickerContext.d.ts +2 -0
- package/dist/DateRangePickerContext.d.ts.map +1 -1
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +3 -0
- package/dist/Disclosure.js.map +1 -1
- package/dist/Disclosure.jsx +1 -1
- package/dist/Disclosure.jsx.map +1 -1
- package/dist/ElementTag.d.ts +29 -0
- package/dist/ElementTag.d.ts.map +1 -0
- package/dist/ElementTag.js +220 -0
- package/dist/ElementTag.js.map +1 -0
- package/dist/ElementTag.jsx +67 -0
- package/dist/ElementTag.jsx.map +1 -0
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +2 -2
- package/dist/GridList.js.map +1 -1
- package/dist/GridList.jsx +2 -2
- package/dist/GridList.jsx.map +1 -1
- package/dist/Landmark.js +4 -3
- package/dist/Landmark.js.map +1 -1
- package/dist/Landmark.jsx +3 -3
- package/dist/Landmark.jsx.map +1 -1
- package/dist/Link.js +3 -2
- package/dist/Link.js.map +1 -1
- package/dist/Link.jsx +3 -3
- package/dist/Link.jsx.map +1 -1
- package/dist/ListBox.d.ts +2 -2
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +327 -166
- package/dist/ListBox.js.map +1 -1
- package/dist/ListBox.jsx +161 -25
- package/dist/ListBox.jsx.map +1 -1
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +7 -5
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.jsx +5 -5
- package/dist/Modal.jsx.map +1 -1
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +16 -9
- package/dist/Popover.js.map +1 -1
- package/dist/Popover.jsx +25 -4
- package/dist/Popover.jsx.map +1 -1
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +182 -46
- package/dist/RangeCalendar.js.map +1 -1
- package/dist/RangeCalendar.jsx +72 -2
- package/dist/RangeCalendar.jsx.map +1 -1
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +26 -2
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchField.jsx +26 -2
- package/dist/SearchField.jsx.map +1 -1
- package/dist/Select.d.ts +7 -0
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +64 -51
- package/dist/Select.js.map +1 -1
- package/dist/Select.jsx +35 -20
- package/dist/Select.jsx.map +1 -1
- package/dist/Separator.js +3 -2
- package/dist/Separator.js.map +1 -1
- package/dist/Separator.jsx +2 -2
- package/dist/Separator.jsx.map +1 -1
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +35 -33
- package/dist/SharedElementTransition.js.map +1 -1
- package/dist/SharedElementTransition.jsx +35 -33
- package/dist/SharedElementTransition.jsx.map +1 -1
- package/dist/StepList.d.ts.map +1 -1
- package/dist/StepList.js +2 -9
- package/dist/StepList.js.map +1 -1
- package/dist/StepList.jsx +1 -6
- package/dist/StepList.jsx.map +1 -1
- package/dist/Table.d.ts +2 -0
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +10 -3
- package/dist/Table.js.map +1 -1
- package/dist/Table.jsx +10 -3
- package/dist/Table.jsx.map +1 -1
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +3 -0
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.jsx +1 -1
- package/dist/Tabs.jsx.map +1 -1
- package/dist/TagGroup.d.ts +3 -1
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +12 -8
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroup.jsx +11 -8
- package/dist/TagGroup.jsx.map +1 -1
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +9 -8
- package/dist/Text.js.map +1 -1
- package/dist/Text.jsx +3 -3
- package/dist/Text.jsx.map +1 -1
- package/dist/TextField.js +4 -1
- package/dist/TextField.js.map +1 -1
- package/dist/TextField.jsx +4 -1
- package/dist/TextField.jsx.map +1 -1
- package/dist/TimeField.d.ts +14 -50
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +111 -205
- package/dist/TimeField.js.map +1 -1
- package/dist/TimeField.jsx +76 -82
- package/dist/TimeField.jsx.map +1 -1
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +3 -3
- package/dist/Tree.js.map +1 -1
- package/dist/Tree.jsx +3 -3
- package/dist/Tree.jsx.map +1 -1
- package/dist/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +3 -11
- package/dist/VisuallyHidden.js.map +1 -1
- package/dist/VisuallyHidden.jsx +3 -4
- package/dist/VisuallyHidden.jsx.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.jsx +6 -6
- package/dist/useDragAndDrop.d.ts +0 -8
- package/dist/useDragAndDrop.d.ts.map +1 -1
- package/dist/useDragAndDrop2.js +6 -2
- package/dist/useDragAndDrop2.js.map +1 -1
- package/dist/useDragAndDrop2.jsx +6 -2
- package/dist/useDragAndDrop2.jsx.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -2
- package/dist/utils.js.map +1 -1
- package/dist/utils.jsx +2 -2
- package/dist/utils.jsx.map +1 -1
- package/package.json +3 -9
- package/src/ActionBar.tsx +10 -12
- package/src/ActionGroup.tsx +5 -3
- package/src/Autocomplete.tsx +14 -9
- package/src/Breadcrumbs.tsx +57 -42
- package/src/Calendar.tsx +30 -1
- package/src/Color.tsx +42 -27
- package/src/ComboBox.tsx +49 -17
- package/src/DateField.tsx +285 -52
- package/src/DatePicker.tsx +345 -57
- package/src/DateRangePickerContext.tsx +2 -0
- package/src/Disclosure.tsx +4 -0
- package/src/ElementTag.tsx +116 -0
- package/src/GridList.tsx +8 -2
- package/src/Landmark.tsx +4 -4
- package/src/Link.tsx +4 -4
- package/src/ListBox.tsx +323 -21
- package/src/Modal.tsx +21 -5
- package/src/Popover.tsx +28 -7
- package/src/RangeCalendar.tsx +120 -1
- package/src/SearchField.tsx +53 -1
- package/src/Select.tsx +114 -22
- package/src/Separator.tsx +3 -3
- package/src/SharedElementTransition.tsx +92 -36
- package/src/StepList.tsx +0 -7
- package/src/Table.tsx +19 -4
- package/src/Tabs.tsx +1 -0
- package/src/TagGroup.tsx +26 -6
- package/src/Text.tsx +5 -4
- package/src/TextField.tsx +1 -1
- package/src/TimeField.tsx +113 -196
- package/src/Tree.tsx +14 -4
- package/src/VisuallyHidden.tsx +8 -12
- package/src/index.ts +3 -8
- package/src/useDragAndDrop.ts +8 -10
- package/src/utils.tsx +3 -3
- package/dist/DatePicker.js.map +0 -1
- package/dist/DatePicker.jsx.map +0 -1
- package/dist/HiddenTimeInput.d.ts +0 -25
- package/dist/HiddenTimeInput.d.ts.map +0 -1
- package/dist/HiddenTimeInput.js +0 -104
- package/dist/HiddenTimeInput.js.map +0 -1
- package/dist/HiddenTimeInput.jsx +0 -69
- package/dist/HiddenTimeInput.jsx.map +0 -1
- package/src/HiddenTimeInput.tsx +0 -133
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { type JSX, createMemo, splitProps } from "solid-js";
|
|
2
|
+
import { Dynamic } from "solid-js/web";
|
|
3
|
+
|
|
4
|
+
export interface ElementTagProps extends Record<string, unknown> {
|
|
5
|
+
/** The HTML tag name to render. */
|
|
6
|
+
tag: string;
|
|
7
|
+
children?: JSX.Element;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Renders a string tag as a *statically compiled* element.
|
|
12
|
+
*
|
|
13
|
+
* A drop-in replacement for `<Dynamic component={someString}>`, which is unsafe
|
|
14
|
+
* anywhere that can render after hydration settles. Solid's `createDynamic`
|
|
15
|
+
* string branch calls `getNextElement()` with **no** `template` argument
|
|
16
|
+
* (solid-js 1.9.14, `web/dist/dev.js:771`). `getNextElement(template)` only
|
|
17
|
+
* reaches the registry while `isHydrating()` holds; once `sharedConfig.done` is
|
|
18
|
+
* set — hydration finished, but `sharedConfig.context` still live — it falls
|
|
19
|
+
* through to `return template()` and throws `TypeError: template is not a
|
|
20
|
+
* function`. Any deferred child lands on exactly that path: a `<Show>` that
|
|
21
|
+
* flips, a Suspense resolution, a portal, a container that defers its children.
|
|
22
|
+
*
|
|
23
|
+
* Each branch below is real JSX, so the compiler emits a `template()` of its own
|
|
24
|
+
* and hands it to `getNextElement(template)` — which adopts the SSR node from the
|
|
25
|
+
* registry during hydration and clones the template afterwards. Both phases work.
|
|
26
|
+
*
|
|
27
|
+
* Props other than `tag` are spread through untouched, `children` included, so
|
|
28
|
+
* this matches `<Dynamic>`'s behaviour exactly (`Dynamic` likewise splits only
|
|
29
|
+
* `component` and spreads the rest onto the element).
|
|
30
|
+
*/
|
|
31
|
+
export function ElementTag(props: ElementTagProps): JSX.Element {
|
|
32
|
+
const [local, rest] = splitProps(props, ["tag"]);
|
|
33
|
+
// Two memos, layered exactly as `<Dynamic>` layers them, and for the same reason.
|
|
34
|
+
// Reading a single key off a merged-props proxy forces the dynamic spread behind
|
|
35
|
+
// it to evaluate (to settle key precedence), which subscribes the reader to every
|
|
36
|
+
// signal that spread touches. Absorbing that read in `cached` keeps it off the memo
|
|
37
|
+
// below: `cached` re-runs freely, but its *value* only moves when the tag really
|
|
38
|
+
// changes, so the element is rebuilt only then. Inline the read into the memo below
|
|
39
|
+
// instead and any prop change recreates the DOM node — blowing away focus, and
|
|
40
|
+
// looping where an ancestor counts the children it just rendered.
|
|
41
|
+
const cached = createMemo(() => local.tag);
|
|
42
|
+
return createMemo(() => {
|
|
43
|
+
switch (cached()) {
|
|
44
|
+
// Text / inline
|
|
45
|
+
case "span":
|
|
46
|
+
return <span {...rest} />;
|
|
47
|
+
case "a":
|
|
48
|
+
return <a {...rest} />;
|
|
49
|
+
case "p":
|
|
50
|
+
return <p {...rest} />;
|
|
51
|
+
case "label":
|
|
52
|
+
return <label {...rest} />;
|
|
53
|
+
case "strong":
|
|
54
|
+
return <strong {...rest} />;
|
|
55
|
+
case "em":
|
|
56
|
+
return <em {...rest} />;
|
|
57
|
+
case "small":
|
|
58
|
+
return <small {...rest} />;
|
|
59
|
+
// Flow
|
|
60
|
+
case "div":
|
|
61
|
+
return <div {...rest} />;
|
|
62
|
+
case "hr":
|
|
63
|
+
return <hr {...rest} />;
|
|
64
|
+
case "li":
|
|
65
|
+
return <li {...rest} />;
|
|
66
|
+
case "ul":
|
|
67
|
+
return <ul {...rest} />;
|
|
68
|
+
case "ol":
|
|
69
|
+
return <ol {...rest} />;
|
|
70
|
+
case "figure":
|
|
71
|
+
return <figure {...rest} />;
|
|
72
|
+
case "blockquote":
|
|
73
|
+
return <blockquote {...rest} />;
|
|
74
|
+
case "address":
|
|
75
|
+
return <address {...rest} />;
|
|
76
|
+
// Headings
|
|
77
|
+
case "h1":
|
|
78
|
+
return <h1 {...rest} />;
|
|
79
|
+
case "h2":
|
|
80
|
+
return <h2 {...rest} />;
|
|
81
|
+
case "h3":
|
|
82
|
+
return <h3 {...rest} />;
|
|
83
|
+
case "h4":
|
|
84
|
+
return <h4 {...rest} />;
|
|
85
|
+
case "h5":
|
|
86
|
+
return <h5 {...rest} />;
|
|
87
|
+
case "h6":
|
|
88
|
+
return <h6 {...rest} />;
|
|
89
|
+
// Landmarks
|
|
90
|
+
case "main":
|
|
91
|
+
return <main {...rest} />;
|
|
92
|
+
case "nav":
|
|
93
|
+
return <nav {...rest} />;
|
|
94
|
+
case "header":
|
|
95
|
+
return <header {...rest} />;
|
|
96
|
+
case "footer":
|
|
97
|
+
return <footer {...rest} />;
|
|
98
|
+
case "aside":
|
|
99
|
+
return <aside {...rest} />;
|
|
100
|
+
case "section":
|
|
101
|
+
return <section {...rest} />;
|
|
102
|
+
case "article":
|
|
103
|
+
return <article {...rest} />;
|
|
104
|
+
case "form":
|
|
105
|
+
return <form {...rest} />;
|
|
106
|
+
case "search":
|
|
107
|
+
return <search {...rest} />;
|
|
108
|
+
default:
|
|
109
|
+
// A tag no component in this package emits. Kept on `<Dynamic>` rather
|
|
110
|
+
// than hand-built so hydration still adopts the SSR node; it inherits
|
|
111
|
+
// the post-hydration caveat above, which is why every tag the library
|
|
112
|
+
// itself renders is listed explicitly.
|
|
113
|
+
return <Dynamic component={local.tag} {...rest} />;
|
|
114
|
+
}
|
|
115
|
+
}) as unknown as JSX.Element;
|
|
116
|
+
}
|
package/src/GridList.tsx
CHANGED
|
@@ -383,7 +383,13 @@ export function GridList<T extends object>(props: GridListProps<T>): JSX.Element
|
|
|
383
383
|
onSelectionChange: stateProps.onSelectionChange,
|
|
384
384
|
}));
|
|
385
385
|
|
|
386
|
-
|
|
386
|
+
// Keep the aria object (do NOT destructure `gridProps`): its `gridProps` getter
|
|
387
|
+
// returns a memo that recomputes on state changes — chiefly the roving container
|
|
388
|
+
// `tabIndex`, which rolls to -1 once a row takes focus. Destructuring here would
|
|
389
|
+
// freeze the getter at its first value (tabIndex 0) and the roll would never
|
|
390
|
+
// reach the DOM. Read `gridListAria.gridProps` inside `cleanGridProps` instead,
|
|
391
|
+
// mirroring how ListBox consumes `listBoxAria.listBoxProps`.
|
|
392
|
+
const gridListAria = createGridList<T, GridCollection<T>>(
|
|
387
393
|
() => ({
|
|
388
394
|
id: ariaProps.id,
|
|
389
395
|
"aria-label": ariaProps["aria-label"],
|
|
@@ -425,7 +431,7 @@ export function GridList<T extends object>(props: GridListProps<T>): JSX.Element
|
|
|
425
431
|
});
|
|
426
432
|
|
|
427
433
|
const cleanGridProps = () => {
|
|
428
|
-
const { ref: _ref1, ...rest } = gridProps as Record<string, unknown>;
|
|
434
|
+
const { ref: _ref1, ...rest } = gridListAria.gridProps as Record<string, unknown>;
|
|
429
435
|
return rest;
|
|
430
436
|
};
|
|
431
437
|
const cleanFocusProps = () => {
|
package/src/Landmark.tsx
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { type JSX, createContext, createMemo, createSignal, splitProps } from "solid-js";
|
|
9
|
-
import {
|
|
9
|
+
import { ElementTag } from "./ElementTag";
|
|
10
10
|
import {
|
|
11
11
|
createLandmark,
|
|
12
12
|
getLandmarkController,
|
|
@@ -147,8 +147,8 @@ export function Landmark(props: LandmarkProps): JSX.Element {
|
|
|
147
147
|
const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));
|
|
148
148
|
|
|
149
149
|
return (
|
|
150
|
-
<
|
|
151
|
-
|
|
150
|
+
<ElementTag
|
|
151
|
+
tag={elementType()}
|
|
152
152
|
ref={setRef}
|
|
153
153
|
{...domProps()}
|
|
154
154
|
{...landmarkAria.landmarkProps}
|
|
@@ -157,7 +157,7 @@ export function Landmark(props: LandmarkProps): JSX.Element {
|
|
|
157
157
|
slot={local.slot}
|
|
158
158
|
>
|
|
159
159
|
{props.children}
|
|
160
|
-
</
|
|
160
|
+
</ElementTag>
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
163
|
|
package/src/Link.tsx
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { type JSX, type ParentProps, createContext, createMemo, splitProps } from "solid-js";
|
|
9
|
-
import {
|
|
9
|
+
import { ElementTag } from "./ElementTag";
|
|
10
10
|
import {
|
|
11
11
|
createLink,
|
|
12
12
|
createFocusRing,
|
|
@@ -241,8 +241,8 @@ export function Link(props: ParentProps<LinkProps>): JSX.Element {
|
|
|
241
241
|
};
|
|
242
242
|
|
|
243
243
|
return (
|
|
244
|
-
<
|
|
245
|
-
|
|
244
|
+
<ElementTag
|
|
245
|
+
tag={elementType()}
|
|
246
246
|
{...domProps()}
|
|
247
247
|
{...cleanLinkProps()}
|
|
248
248
|
{...cleanHoverProps()}
|
|
@@ -261,6 +261,6 @@ export function Link(props: ParentProps<LinkProps>): JSX.Element {
|
|
|
261
261
|
data-disabled={ariaProps.isDisabled || undefined}
|
|
262
262
|
>
|
|
263
263
|
{renderProps.renderChildren()}
|
|
264
|
-
</
|
|
264
|
+
</ElementTag>
|
|
265
265
|
);
|
|
266
266
|
}
|