@gunkin/uiify 0.0.14-alpha → 0.0.16-alpha
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 +46 -1
- package/agents/components.md +80 -0
- package/agents/index.md +179 -0
- package/agents/reference/components/accordion.md +35 -0
- package/agents/reference/components/alert-modal.md +63 -0
- package/agents/reference/components/breadcrumb.md +72 -0
- package/agents/reference/components/button.md +40 -0
- package/agents/reference/components/candle-chart.md +107 -0
- package/agents/reference/components/carousel.md +274 -0
- package/agents/reference/components/checkbox.md +32 -0
- package/agents/reference/components/collapsible.md +26 -0
- package/agents/reference/components/color-picker.md +33 -0
- package/agents/reference/components/combobox.md +193 -0
- package/agents/reference/components/context-menu.md +129 -0
- package/agents/reference/components/drawer.md +215 -0
- package/agents/reference/components/dropdown-menu.md +178 -0
- package/agents/reference/components/field.md +76 -0
- package/agents/reference/components/file-upload.md +131 -0
- package/agents/reference/components/form.md +28 -0
- package/agents/reference/components/header.md +44 -0
- package/agents/reference/components/hover-card.md +54 -0
- package/agents/reference/components/input.md +29 -0
- package/agents/reference/components/line-chart.md +104 -0
- package/agents/reference/components/modal.md +106 -0
- package/agents/reference/components/number-field.md +60 -0
- package/agents/reference/components/otp-input.md +68 -0
- package/agents/reference/components/pagination.md +112 -0
- package/agents/reference/components/popup.md +111 -0
- package/agents/reference/components/radio-group.md +37 -0
- package/agents/reference/components/rating.md +43 -0
- package/agents/reference/components/segmented-control.md +51 -0
- package/agents/reference/components/select.md +60 -0
- package/agents/reference/components/skeleton.md +29 -0
- package/agents/reference/components/slider.md +71 -0
- package/agents/reference/components/spinner.md +34 -0
- package/agents/reference/components/switch.md +27 -0
- package/agents/reference/components/table-of-contents.md +185 -0
- package/agents/reference/components/table.md +189 -0
- package/agents/reference/components/tabs.md +42 -0
- package/agents/reference/components/tags-input.md +123 -0
- package/agents/reference/components/textarea.md +31 -0
- package/agents/reference/components/toast.md +151 -0
- package/agents/reference/components/toggle-group.md +50 -0
- package/agents/reference/components/toggle.md +26 -0
- package/agents/reference/components/toolbar.md +69 -0
- package/agents/reference/components/tooltip.md +76 -0
- package/agents/reference/components/virtual-scroll.md +97 -0
- package/agents/reference/elements/choice.md +55 -0
- package/agents/reference/elements/details.md +45 -0
- package/agents/reference/elements/dialog.md +43 -0
- package/agents/reference/elements/invoker.md +28 -0
- package/agents/reference/elements/popover.md +53 -0
- package/dist/components/alert-modal/AlertModalParts.js +1 -1
- package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
- package/dist/components/button/Button.d.ts.map +1 -1
- package/dist/components/button/Button.js +5 -3
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/index.d.ts +1 -1
- package/dist/components/button/index.d.ts.map +1 -1
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/types.d.ts +5 -4
- package/dist/components/button/types.d.ts.map +1 -1
- package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
- package/dist/components/carousel/CarouselMarkup.js +8 -0
- package/dist/components/carousel/CarouselMarkup.js.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.js +0 -2
- package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
- package/dist/components/dropdown-menu/types.d.ts +0 -1
- package/dist/components/dropdown-menu/types.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
- package/dist/components/internal/choice-family/ChoiceGroup.js +2 -3
- package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
- package/dist/components/internal/choice-family/types.d.ts +2 -2
- package/dist/components/internal/choice-family/types.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +11 -0
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
- package/dist/components/pagination/PaginationShell.js +26 -1
- package/dist/components/pagination/PaginationShell.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.js +1 -0
- package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
- package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
- package/dist/components/segmented-control/client/SegmentedControlClient.js +1 -0
- package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
- package/dist/components/table-of-contents/TableOfContents.d.ts +22 -0
- package/dist/components/table-of-contents/TableOfContents.d.ts.map +1 -0
- package/dist/components/table-of-contents/TableOfContents.js +142 -0
- package/dist/components/table-of-contents/TableOfContents.js.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts +18 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.js +140 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.js.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts +7 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.js +48 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.js.map +1 -0
- package/dist/components/table-of-contents/client/index.d.ts +5 -0
- package/dist/components/table-of-contents/client/index.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/index.js +23 -0
- package/dist/components/table-of-contents/client/index.js.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.d.ts +3 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.js +7 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.js.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts +3 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.js +144 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.js.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts +3 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.js +94 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.js.map +1 -0
- package/dist/components/table-of-contents/client.d.ts +1 -0
- package/dist/components/table-of-contents/client.js +1 -0
- package/dist/components/table-of-contents/index.d.ts +3 -0
- package/dist/components/table-of-contents/index.d.ts.map +1 -0
- package/dist/components/table-of-contents/index.js +21 -0
- package/dist/components/table-of-contents/index.js.map +1 -0
- package/dist/components/table-of-contents/scrollspy-selection.d.ts +4 -0
- package/dist/components/table-of-contents/scrollspy-selection.d.ts.map +1 -0
- package/dist/components/table-of-contents/scrollspy-selection.js +31 -0
- package/dist/components/table-of-contents/scrollspy-selection.js.map +1 -0
- package/dist/components/table-of-contents/scrollspy.d.ts +4 -0
- package/dist/components/table-of-contents/scrollspy.d.ts.map +1 -0
- package/dist/components/table-of-contents/scrollspy.js +178 -0
- package/dist/components/table-of-contents/scrollspy.js.map +1 -0
- package/dist/components/table-of-contents/types.d.ts +123 -0
- package/dist/components/table-of-contents/types.d.ts.map +1 -0
- package/dist/components/table-of-contents/types.js +1 -0
- package/dist/components/table-of-contents/types.js.map +1 -0
- package/dist/components/table-of-contents.d.ts +1 -0
- package/dist/components/table-of-contents.js +1 -0
- package/dist/components/toggle/Toggle.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.js +12 -1
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
- package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
- package/dist/components/toggle-group/ToggleGroup.js +6 -1
- package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
- package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
- package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
- package/dist/components/toggle-group/client/ToggleGroupClient.js +19 -6
- package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
- package/dist/components/toggle-group/types.d.ts +3 -3
- package/dist/components/toggle-group/types.d.ts.map +1 -1
- package/dist/components/toolbar/ToolbarShell.d.ts.map +1 -1
- package/dist/components/toolbar/ToolbarShell.js +5 -2
- package/dist/components/toolbar/ToolbarShell.js.map +1 -1
- package/dist/components/toolbar/types.d.ts +2 -1
- package/dist/components/toolbar/types.d.ts.map +1 -1
- package/dist/core/render-native-invoker.d.ts +1 -1
- package/dist/core/render-native-invoker.d.ts.map +1 -1
- package/dist/core/render-native-invoker.js.map +1 -1
- package/dist/styles/index.css +1 -1
- package/package.json +4 -2
- package/skills/uiify/SKILL.md +167 -0
- package/skills/uiify/scripts/lint.mjs +56 -0
- package/skills/uiify/scripts/static.mjs +95 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<!-- Generated from the package source. Do not edit by hand. -->
|
|
2
|
+
# tooltip
|
|
3
|
+
|
|
4
|
+
- Import: `@gunkin/uiify/components/tooltip`
|
|
5
|
+
- Tier 1 (RSC shell + thin client island); state source S1; native element `[popover]`
|
|
6
|
+
- Without JavaScript: degraded-documented
|
|
7
|
+
- Types file: `dist/components/tooltip.d.ts`
|
|
8
|
+
|
|
9
|
+
## Exports
|
|
10
|
+
|
|
11
|
+
- Runtime: `Tooltip`, `TooltipContent`, `TooltipProvider`, `TooltipRoot`, `TooltipTrigger`
|
|
12
|
+
- Types: `TooltipContentOwnProps`, `TooltipContentProps`, `TooltipProviderOwnProps`, `TooltipRootOwnProps`, `TooltipRootProps`, `TooltipTriggerOwnProps`, `TooltipTriggerProps`
|
|
13
|
+
|
|
14
|
+
## Props and shapes
|
|
15
|
+
|
|
16
|
+
### TooltipProviderOptions
|
|
17
|
+
|
|
18
|
+
| Member | Type | Required | Description |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| `delayDuration` | `number` | yes | |
|
|
21
|
+
| `skipDelayDuration` | `number` | yes | |
|
|
22
|
+
|
|
23
|
+
### TooltipProviderStore
|
|
24
|
+
|
|
25
|
+
| Member | Type | Required | Description |
|
|
26
|
+
| --- | --- | --- | --- |
|
|
27
|
+
| `getDelayDuration` | `() => number` | yes | |
|
|
28
|
+
| `markOpened` | `() => void` | yes | |
|
|
29
|
+
| `shouldSkipDelay` | `() => boolean` | yes | |
|
|
30
|
+
| `updateOptions` | `(next: TooltipProviderOptions) => void` | yes | |
|
|
31
|
+
|
|
32
|
+
### TooltipProviderOwnProps
|
|
33
|
+
|
|
34
|
+
| Member | Type | Required | Description |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| `children` | `ReactNode` | no | |
|
|
37
|
+
| `delayDuration` | `number` | no | |
|
|
38
|
+
| `skipDelayDuration` | `number` | no | |
|
|
39
|
+
|
|
40
|
+
### TooltipRootOwnProps
|
|
41
|
+
|
|
42
|
+
| Member | Type | Required | Description |
|
|
43
|
+
| --- | --- | --- | --- |
|
|
44
|
+
| `defaultOpen` | `boolean` | no | |
|
|
45
|
+
| `id` | `string` | no | |
|
|
46
|
+
| `onOpenChange` | `PopoverChangeHandler` | no | |
|
|
47
|
+
| `open` | `boolean` | no | |
|
|
48
|
+
|
|
49
|
+
### TooltipRootProps
|
|
50
|
+
|
|
51
|
+
Extends: `TooltipRootOwnProps`
|
|
52
|
+
|
|
53
|
+
| Member | Type | Required | Description |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| `children` | `ReactNode` | no | |
|
|
56
|
+
|
|
57
|
+
### TooltipTriggerOwnProps
|
|
58
|
+
|
|
59
|
+
| Member | Type | Required | Description |
|
|
60
|
+
| --- | --- | --- | --- |
|
|
61
|
+
| `children` | `ReactNode` | no | |
|
|
62
|
+
| `className` | `string` | no | |
|
|
63
|
+
|
|
64
|
+
### TooltipContentOwnProps
|
|
65
|
+
|
|
66
|
+
| Member | Type | Required | Description |
|
|
67
|
+
| --- | --- | --- | --- |
|
|
68
|
+
| `align` | `AnchorAlign` | no | |
|
|
69
|
+
| `children` | `ReactNode` | no | |
|
|
70
|
+
| `className` | `string` | no | |
|
|
71
|
+
| `side` | `AnchorSide` | no | |
|
|
72
|
+
|
|
73
|
+
## Other types
|
|
74
|
+
|
|
75
|
+
- `TooltipTriggerProps<TAs>`: `RenderableProps<TAs, TooltipTriggerOwnProps, { open: boolean }, HTMLElement>`
|
|
76
|
+
- `TooltipContentProps<TAs>`: `RenderableProps<TAs, TooltipContentOwnProps, { open: boolean; positioning: "native" }, HTMLElement>`
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<!-- Generated from the package source. Do not edit by hand. -->
|
|
2
|
+
# virtual-scroll
|
|
3
|
+
|
|
4
|
+
- Import: `@gunkin/uiify/components/virtual-scroll`
|
|
5
|
+
- Tier 2 (Client component — pre-hydration SSR); state source none; native element `div[overflow]`
|
|
6
|
+
- Without JavaScript: pre-hydration-only
|
|
7
|
+
- Types file: `dist/components/virtual-scroll.d.ts`
|
|
8
|
+
|
|
9
|
+
## Exports
|
|
10
|
+
|
|
11
|
+
- Runtime: `VirtualScroll`, `VIRTUAL_SCROLL_ANCHOR_THRESHOLD`, `VIRTUAL_SCROLL_OVERSCAN`, `VIRTUAL_SCROLL_ROW_HEIGHT`, `VIRTUAL_SCROLL_SCROLL_RESET_DELAY`
|
|
12
|
+
- Types: `VirtualScrollAnchor`, `VirtualScrollHandle`, `VirtualScrollItem`, `VirtualScrollListRole`, `VirtualScrollOrientation`, `VirtualScrollOwnProps`, `VirtualScrollRangeChange`, `VirtualScrollRowSlot`, `VirtualScrollScrollAlign`, `VirtualScrollScrollBehavior`, `VirtualScrollScrollBehaviorOptions`, `VirtualScrollScrollState`, `VirtualScrollScrollToIndexOptions`
|
|
13
|
+
|
|
14
|
+
## Values
|
|
15
|
+
|
|
16
|
+
- `VirtualScrollListRole`: `"list" | "grid"`
|
|
17
|
+
- `VirtualScrollAnchor`: `"start" | "end"`
|
|
18
|
+
- `VirtualScrollOrientation`: `"vertical" | "horizontal"` — Scroll axis. Row size props (`rowHeight`, `estimateRowHeight`) measure along this axis.
|
|
19
|
+
- `VirtualScrollScrollAlign`: `"start" | "center" | "end" | "auto"`
|
|
20
|
+
- `VirtualScrollScrollBehavior`: `"auto" | "instant" | "smooth"`
|
|
21
|
+
|
|
22
|
+
## Props and shapes
|
|
23
|
+
|
|
24
|
+
### VirtualScrollItem
|
|
25
|
+
|
|
26
|
+
| Member | Type | Required | Description |
|
|
27
|
+
| --- | --- | --- | --- |
|
|
28
|
+
| `id` | `string` | yes | |
|
|
29
|
+
|
|
30
|
+
### VirtualScrollScrollBehaviorOptions
|
|
31
|
+
|
|
32
|
+
| Member | Type | Required | Description |
|
|
33
|
+
| --- | --- | --- | --- |
|
|
34
|
+
| `behavior` | `VirtualScrollScrollBehavior` | no | |
|
|
35
|
+
|
|
36
|
+
### VirtualScrollScrollToIndexOptions
|
|
37
|
+
|
|
38
|
+
Extends: `VirtualScrollScrollBehaviorOptions`
|
|
39
|
+
|
|
40
|
+
| Member | Type | Required | Description |
|
|
41
|
+
| --- | --- | --- | --- |
|
|
42
|
+
| `align` | `VirtualScrollScrollAlign` | no | |
|
|
43
|
+
|
|
44
|
+
### VirtualScrollRangeChange
|
|
45
|
+
|
|
46
|
+
| Member | Type | Required | Description |
|
|
47
|
+
| --- | --- | --- | --- |
|
|
48
|
+
| `startIndex` | `number` | yes | First visible row index (no overscan). |
|
|
49
|
+
| `endIndex` | `number` | yes | Last visible row index, inclusive (no overscan). |
|
|
50
|
+
| `overscanStart` | `number` | yes | First rendered row index including overscan. |
|
|
51
|
+
| `overscanEnd` | `number` | yes | Last rendered row index, inclusive, including overscan. |
|
|
52
|
+
|
|
53
|
+
### VirtualScrollScrollState
|
|
54
|
+
|
|
55
|
+
| Member | Type | Required | Description |
|
|
56
|
+
| --- | --- | --- | --- |
|
|
57
|
+
| `isScrolling` | `boolean` | yes | |
|
|
58
|
+
|
|
59
|
+
### VirtualScrollHandle
|
|
60
|
+
|
|
61
|
+
| Member | Type | Required | Description |
|
|
62
|
+
| --- | --- | --- | --- |
|
|
63
|
+
| `element` | `HTMLDivElement \| null` | yes | |
|
|
64
|
+
| `scrollToIndex` | `scrollToIndex(index: number, options?: VirtualScrollScrollToIndexOptions): void` | yes | |
|
|
65
|
+
| `scrollToOffset` | `scrollToOffset(offset: number, options?: VirtualScrollScrollBehaviorOptions): void` | yes | |
|
|
66
|
+
| `scrollToEnd` | `scrollToEnd(options?: VirtualScrollScrollBehaviorOptions): void` | yes | |
|
|
67
|
+
|
|
68
|
+
### VirtualScrollOwnProps
|
|
69
|
+
|
|
70
|
+
Extends: `Omit<ComponentPropsWithoutRef<"div">, "children" | "role">`
|
|
71
|
+
|
|
72
|
+
| Member | Type | Required | Description |
|
|
73
|
+
| --- | --- | --- | --- |
|
|
74
|
+
| `items` | `readonly T[]` | yes | |
|
|
75
|
+
| `height` | `number` | no | Scrollport height; also the viewport extent used before the first resize measurement. |
|
|
76
|
+
| `rowHeight` | `number` | no | Fixed item size along the scroll axis — row height when vertical, item width when horizontal. |
|
|
77
|
+
| `orientation` | `VirtualScrollOrientation` | no | |
|
|
78
|
+
| `overscan` | `number` | no | |
|
|
79
|
+
| `className` | `string` | no | |
|
|
80
|
+
| `testId` | `string` | no | |
|
|
81
|
+
| `renderRow` | `(item: T, index: number) => ReactNode` | yes | |
|
|
82
|
+
| `scrollRef` | `Ref<VirtualScrollHandle>` | no | |
|
|
83
|
+
| `estimateRowHeight` | `(index: number) => number` | no | |
|
|
84
|
+
| `onRangeChange` | `(range: VirtualScrollRangeChange) => void` | no | |
|
|
85
|
+
| `role` | `VirtualScrollListRole` | no | |
|
|
86
|
+
| `anchor` | `VirtualScrollAnchor` | no | |
|
|
87
|
+
| `followAppend` | `boolean \| "smooth"` | no | |
|
|
88
|
+
| `onScrollStateChange` | `(state: VirtualScrollScrollState) => void` | no | |
|
|
89
|
+
| `isScrollingResetDelay` | `number` | no | |
|
|
90
|
+
|
|
91
|
+
### VirtualScrollRowSlot
|
|
92
|
+
|
|
93
|
+
| Member | Type | Required | Description |
|
|
94
|
+
| --- | --- | --- | --- |
|
|
95
|
+
| `slotIndex` | `number` | yes | |
|
|
96
|
+
| `index` | `number` | yes | |
|
|
97
|
+
| `item` | `T \| null` | yes | |
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!-- Generated from the package source. Do not edit by hand. -->
|
|
2
|
+
# choice
|
|
3
|
+
|
|
4
|
+
- Import: `@gunkin/uiify/elements/choice`
|
|
5
|
+
- Native mechanism: input[type=radio|checkbox] + label
|
|
6
|
+
- Parts: `Choice.Group`, `Choice.Item`
|
|
7
|
+
- Used by: radio-group, tabs, toggle-group, segmented-control, rating
|
|
8
|
+
- Types file: `dist/elements/choice.d.ts`
|
|
9
|
+
|
|
10
|
+
## Exports
|
|
11
|
+
|
|
12
|
+
- Runtime: `Choice`, `ChoiceGroup`, `ChoiceItem`, `choiceGroupName`, `choiceIds`
|
|
13
|
+
- Types: `ChoiceGroupOwnProps`, `ChoiceGroupProps`, `ChoiceItemOwnProps`, `ChoiceItemProps`, `ChoiceKind`, `ChoiceOrientation`
|
|
14
|
+
|
|
15
|
+
## Values
|
|
16
|
+
|
|
17
|
+
- `ChoiceKind`: `"single" | "multiple"` — `"single"` renders `type="radio"`; `"multiple"` renders `type="checkbox"`.
|
|
18
|
+
- `ChoiceOrientation`: `"horizontal" | "vertical"`
|
|
19
|
+
|
|
20
|
+
## Props and shapes
|
|
21
|
+
|
|
22
|
+
### ChoiceGroupOwnProps
|
|
23
|
+
|
|
24
|
+
| Member | Type | Required | Description |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
| `children` | `ReactNode` | no | |
|
|
27
|
+
| `id` | `string` | yes | Seeds every child `Choice.Item`'s derived ids and form-control name — pass the same value to each item's own `groupId`. Tier 0 bans `useContext`, so there is no implicit injection from Group to Item; this id is the explicit wiring, the same pattern `@gunkin/uiify/elements/dialog`'s `target` prop uses. |
|
|
28
|
+
| `kind` | `ChoiceKind` | yes | |
|
|
29
|
+
| `orientation` | `ChoiceOrientation` | no | |
|
|
30
|
+
| `name` | `string` | no | Documents the derived `choiceGroupName(id, kind)` override every child `Choice.Item` should also receive as its own `name` — not read by `Choice.Group` itself (there is nowhere to inject it to without context), but declaring it here keeps the two in sync for anyone reading the JSX. |
|
|
31
|
+
|
|
32
|
+
### ChoiceItemOwnProps
|
|
33
|
+
|
|
34
|
+
| Member | Type | Required | Description |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| `value` | `string` | yes | |
|
|
37
|
+
| `label` | `ReactNode` | yes | Rendered inside the `<label>`. |
|
|
38
|
+
| `panel` | `ReactNode` | no | When present, renders `<div data-part="panel">` as a sibling after the label. |
|
|
39
|
+
| `groupId` | `string` | yes | The `Choice.Group.id` this item belongs to — see `ChoiceGroupOwnProps.id`. |
|
|
40
|
+
| `kind` | `ChoiceKind` | yes | |
|
|
41
|
+
| `name` | `string` | no | Overrides the derived `choiceGroupName(groupId, kind)` form-control name. |
|
|
42
|
+
| `defaultChecked` | `boolean` | no | The browser owns the state after first render. |
|
|
43
|
+
| `checked` | `boolean` | no | Controlled checked state for client-enhanced choice groups. |
|
|
44
|
+
| `disabled` | `boolean` | no | |
|
|
45
|
+
| `part` | `string` | no | Wrapper `data-part`. Defaults to `"item"`. |
|
|
46
|
+
| `labelPart` | `boolean` | no | Adds `data-part="label"` to the `<label>`. |
|
|
47
|
+
| `inputProps` | `Record<string, unknown>` | no | Escape hatch: extra attributes spread onto the `<input>` (for example, `data-part="control"`). |
|
|
48
|
+
| `labelProps` | `Record<string, unknown>` | no | Escape hatch: extra attributes spread onto the `<label>`. |
|
|
49
|
+
| `panelProps` | `Record<string, unknown>` | no | Escape hatch: extra attributes spread onto the panel `<div>`. |
|
|
50
|
+
| `onValueChange` | `(value: string) => void` | no | Client-only: attaches to the input's native `change`. Passing it does not make this element a client component — the *caller* must already be one. Omitted by every uncontrolled (server) caller, so the server output stays handler-free. |
|
|
51
|
+
|
|
52
|
+
## Other types
|
|
53
|
+
|
|
54
|
+
- `ChoiceGroupProps`: `ChoiceGroupOwnProps & Omit<ComponentPropsWithRef<"div">, keyof ChoiceGroupOwnProps>`
|
|
55
|
+
- `ChoiceItemProps`: `ChoiceItemOwnProps & Omit<ComponentPropsWithRef<"div">, keyof ChoiceItemOwnProps | "children">`
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- Generated from the package source. Do not edit by hand. -->
|
|
2
|
+
# details
|
|
3
|
+
|
|
4
|
+
- Import: `@gunkin/uiify/elements/details`
|
|
5
|
+
- Native mechanism: details/summary
|
|
6
|
+
- Parts: `Details.Root`, `Details.Summary`, `Details.Content`
|
|
7
|
+
- Used by: accordion, collapsible, breadcrumb
|
|
8
|
+
- Types file: `dist/elements/details.d.ts`
|
|
9
|
+
|
|
10
|
+
## Exports
|
|
11
|
+
|
|
12
|
+
- Runtime: `Details`, `DetailsContent`, `DetailsRoot`, `DetailsSummary`
|
|
13
|
+
- Types: `DetailsContentOwnProps`, `DetailsContentProps`, `DetailsRootOwnProps`, `DetailsRootProps`, `DetailsSummaryOwnProps`, `DetailsSummaryProps`
|
|
14
|
+
|
|
15
|
+
## Props and shapes
|
|
16
|
+
|
|
17
|
+
### DetailsRootOwnProps
|
|
18
|
+
|
|
19
|
+
| Member | Type | Required | Description |
|
|
20
|
+
| --- | --- | --- | --- |
|
|
21
|
+
| `children` | `ReactNode` | no | |
|
|
22
|
+
| `defaultOpen` | `boolean` | no | Applies the native `open` attribute on first render. |
|
|
23
|
+
| `name` | `string` | no | Groups sibling `<details name>` into an exclusive, single-open set — the browser enforces it, no JS. Must be unique per group and stable across SSR. |
|
|
24
|
+
| `disabled` | `boolean` | no | |
|
|
25
|
+
|
|
26
|
+
### DetailsSummaryOwnProps
|
|
27
|
+
|
|
28
|
+
| Member | Type | Required | Description |
|
|
29
|
+
| --- | --- | --- | --- |
|
|
30
|
+
| `children` | `ReactNode` | no | |
|
|
31
|
+
| `disabled` | `boolean` | no | |
|
|
32
|
+
| `part` | `string` | no | `data-part` value on the rendered `<summary>`; omitted entirely when not given. |
|
|
33
|
+
|
|
34
|
+
### DetailsContentOwnProps
|
|
35
|
+
|
|
36
|
+
| Member | Type | Required | Description |
|
|
37
|
+
| --- | --- | --- | --- |
|
|
38
|
+
| `children` | `ReactNode` | no | |
|
|
39
|
+
| `part` | `string` | no | `data-part` value on the rendered element; omitted entirely when not given. |
|
|
40
|
+
|
|
41
|
+
## Other types
|
|
42
|
+
|
|
43
|
+
- `DetailsRootProps`: `DetailsRootOwnProps & Omit<ComponentPropsWithRef<"details">, keyof DetailsRootOwnProps | "open">` — `open` is not part of the contract — use `defaultOpen`; the browser owns state after that.
|
|
44
|
+
- `DetailsSummaryProps`: `DetailsSummaryOwnProps & Omit<ComponentPropsWithRef<"summary">, keyof DetailsSummaryOwnProps>`
|
|
45
|
+
- `DetailsContentProps<TAs>`: `RenderableProps<TAs, DetailsContentOwnProps, Record<string, never>, HTMLElement>`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- Generated from the package source. Do not edit by hand. -->
|
|
2
|
+
# dialog
|
|
3
|
+
|
|
4
|
+
- Import: `@gunkin/uiify/elements/dialog`
|
|
5
|
+
- Native mechanism: dialog + command=show-modal
|
|
6
|
+
- Parts: `Dialog.Trigger`, `Dialog.Content`, `Dialog.Close`
|
|
7
|
+
- Used by: modal, alert-modal, drawer
|
|
8
|
+
- Types file: `dist/elements/dialog.d.ts`
|
|
9
|
+
|
|
10
|
+
## Exports
|
|
11
|
+
|
|
12
|
+
- Runtime: `Dialog`, `DialogClose`, `DialogContent`, `DialogTrigger`
|
|
13
|
+
- Types: `DialogCloseOwnProps`, `DialogCloseProps`, `DialogContentNameProps`, `DialogContentOwnProps`, `DialogContentProps`, `DialogTriggerOwnProps`, `DialogTriggerProps`
|
|
14
|
+
|
|
15
|
+
## Props and shapes
|
|
16
|
+
|
|
17
|
+
### DialogTriggerOwnProps
|
|
18
|
+
|
|
19
|
+
| Member | Type | Required | Description |
|
|
20
|
+
| --- | --- | --- | --- |
|
|
21
|
+
| `children` | `ReactNode` | no | |
|
|
22
|
+
| `target` | `string` | yes | `id` of the `Dialog.Content` this button opens; the browser resolves it at click time. |
|
|
23
|
+
|
|
24
|
+
### DialogCloseOwnProps
|
|
25
|
+
|
|
26
|
+
| Member | Type | Required | Description |
|
|
27
|
+
| --- | --- | --- | --- |
|
|
28
|
+
| `children` | `ReactNode` | no | |
|
|
29
|
+
| `target` | `string` | yes | `id` of the `Dialog.Content` this button closes. |
|
|
30
|
+
|
|
31
|
+
### DialogContentOwnProps
|
|
32
|
+
|
|
33
|
+
| Member | Type | Required | Description |
|
|
34
|
+
| --- | --- | --- | --- |
|
|
35
|
+
| `children` | `ReactNode` | no | |
|
|
36
|
+
| `id` | `string` | yes | Unique id supplied by the consumer; referenced by trigger and close `target`. |
|
|
37
|
+
|
|
38
|
+
## Other types
|
|
39
|
+
|
|
40
|
+
- `DialogTriggerProps<TAs>`: `NativeButtonProps<TAs, DialogTriggerOwnProps>`
|
|
41
|
+
- `DialogCloseProps<TAs>`: `NativeButtonProps<TAs, DialogCloseOwnProps>`
|
|
42
|
+
- `DialogContentNameProps`: `{ readonly "aria-labelledby": string; readonly "aria-label"?: never } | { readonly "aria-label": string; readonly "aria-labelledby"?: never }` — An unnamed `<dialog>` is an axe violation the browser has no fallback for, so the accessible name is a type error to omit — exactly one of `aria-labelledby` or `aria-label` is required.
|
|
43
|
+
- `DialogContentProps`: `DialogContentOwnProps & DialogContentNameProps & Omit<ComponentPropsWithRef<"dialog">, keyof DialogContentOwnProps | "open" | "popover" | "aria-label" | "aria-labelledby">` — A plain, initially closed `<dialog>`: `open` and `popover` are not part of the native contract, and the accessible name is required (see `DialogContentNameProps`).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!-- Generated from the package source. Do not edit by hand. -->
|
|
2
|
+
# invoker
|
|
3
|
+
|
|
4
|
+
- Import: `@gunkin/uiify/elements/invoker`
|
|
5
|
+
- Native mechanism: command/commandfor attributes
|
|
6
|
+
- Parts: `Invoker`
|
|
7
|
+
- Used by: dialog
|
|
8
|
+
- Types file: `dist/elements/invoker.d.ts`
|
|
9
|
+
|
|
10
|
+
## Exports
|
|
11
|
+
|
|
12
|
+
- Runtime: `Invoker`
|
|
13
|
+
- Types: `InvokerOwnProps`, `InvokerProps`, `NativeCommand`
|
|
14
|
+
|
|
15
|
+
## Props and shapes
|
|
16
|
+
|
|
17
|
+
### InvokerOwnProps
|
|
18
|
+
|
|
19
|
+
| Member | Type | Required | Description |
|
|
20
|
+
| --- | --- | --- | --- |
|
|
21
|
+
| `children` | `ReactNode` | no | |
|
|
22
|
+
| `command` | `NativeCommand` | yes | The command to invoke on `commandfor` when this button is activated. |
|
|
23
|
+
| `commandfor` | `string` | yes | `id` of the element this button invokes a command on. |
|
|
24
|
+
|
|
25
|
+
## Other types
|
|
26
|
+
|
|
27
|
+
- `NativeCommand`: `` "show-modal" | "request-close" | "close" | "show-popover" | "hide-popover" | "toggle-popover" | `--${string}` `` — The commands defined by the HTML Invoker Commands API, plus a consumer `--*` custom command (template literal type). A custom command needs its own JS listener on `commandfor`'s target — this element documents that contract, it does not implement one.
|
|
28
|
+
- `InvokerProps<TAs>`: `NativeButtonProps<TAs, InvokerOwnProps>` — `as` defaults to `"button"`; intrinsic tags other than `"button"` are a type error — invoker commands only fire from a real button — and `type` is owned by the element (it is always `"button"`, never `"submit"`/`"reset"`).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!-- Generated from the package source. Do not edit by hand. -->
|
|
2
|
+
# popover
|
|
3
|
+
|
|
4
|
+
- Import: `@gunkin/uiify/elements/popover`
|
|
5
|
+
- Native mechanism: [popover] + popovertarget
|
|
6
|
+
- Parts: `Popover.Trigger`, `Popover.Surface`, `Popover.Close`
|
|
7
|
+
- Used by: popup
|
|
8
|
+
- Types file: `dist/elements/popover.d.ts`
|
|
9
|
+
|
|
10
|
+
## Exports
|
|
11
|
+
|
|
12
|
+
- Runtime: `Popover`, `PopoverClose`, `PopoverSurface`, `PopoverTrigger`
|
|
13
|
+
- Types: `AnchorAlign`, `AnchorSide`, `PopoverCloseOwnProps`, `PopoverCloseProps`, `PopoverSurfaceMode`, `PopoverSurfaceOwnProps`, `PopoverSurfaceProps`, `PopoverTriggerAction`, `PopoverTriggerOwnProps`, `PopoverTriggerProps`
|
|
14
|
+
|
|
15
|
+
## Values
|
|
16
|
+
|
|
17
|
+
- `PopoverSurfaceMode`: `"auto" | "manual"` — Cross-engine baseline; `hint` is not part of this element's contract.
|
|
18
|
+
- `AnchorSide`: `"top" | "right" | "bottom" | "left"`
|
|
19
|
+
- `AnchorAlign`: `"start" | "center" | "end"`
|
|
20
|
+
- `PopoverTriggerAction`: `"toggle" | "show" | "hide"` — What a trigger does to its target popover when activated.
|
|
21
|
+
|
|
22
|
+
## Props and shapes
|
|
23
|
+
|
|
24
|
+
### PopoverTriggerOwnProps
|
|
25
|
+
|
|
26
|
+
| Member | Type | Required | Description |
|
|
27
|
+
| --- | --- | --- | --- |
|
|
28
|
+
| `children` | `ReactNode` | no | |
|
|
29
|
+
| `action` | `PopoverTriggerAction` | no | Defaults to `"toggle"`. |
|
|
30
|
+
| `target` | `string` | yes | `id` of the `Popover.Surface` this button acts on. |
|
|
31
|
+
|
|
32
|
+
### PopoverCloseOwnProps
|
|
33
|
+
|
|
34
|
+
| Member | Type | Required | Description |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| `children` | `ReactNode` | no | |
|
|
37
|
+
| `target` | `string` | yes | `id` of the `Popover.Surface` this button hides. |
|
|
38
|
+
|
|
39
|
+
### PopoverSurfaceOwnProps
|
|
40
|
+
|
|
41
|
+
| Member | Type | Required | Description |
|
|
42
|
+
| --- | --- | --- | --- |
|
|
43
|
+
| `align` | `AnchorAlign` | no | |
|
|
44
|
+
| `children` | `ReactNode` | no | |
|
|
45
|
+
| `id` | `string` | yes | Unique id supplied by the consumer; referenced by trigger and close `target`. |
|
|
46
|
+
| `mode` | `PopoverSurfaceMode` | no | |
|
|
47
|
+
| `side` | `AnchorSide` | no | |
|
|
48
|
+
|
|
49
|
+
## Other types
|
|
50
|
+
|
|
51
|
+
- `PopoverTriggerProps<TAs>`: `NativeButtonProps<TAs, PopoverTriggerOwnProps>`
|
|
52
|
+
- `PopoverCloseProps<TAs>`: `NativeButtonProps<TAs, PopoverCloseOwnProps>`
|
|
53
|
+
- `PopoverSurfaceProps`: `PopoverSurfaceOwnProps & Omit<ComponentPropsWithRef<"div">, keyof PopoverSurfaceOwnProps | "popover">` — `popover`, `data-side`, `data-align` and `data-positioning` are owned by the element.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/alert-modal/AlertModalParts.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { renderNativeInvoker } from \"@gunkin/uiify/core/render\";\nimport type {\n AlertModalActionProps,\n AlertModalCancelProps,\n AlertModalContentProps,\n AlertModalTriggerProps,\n} from \"./types.js\";\n\n/** Native alert modal invoker with alert-modal identity and trigger anatomy. */\nexport function AlertModalTrigger<TAs extends ElementType = \"button\">(\n props: AlertModalTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalTriggerProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"trigger\",\n \"show-modal\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true },\n );\n}\nAlertModalTrigger.displayName = \"AlertModalTrigger\";\n\n/** Native alert dialog content with alert-modal identity and content anatomy. */\nexport function AlertModalContent(props: AlertModalContentProps): ReactElement {\n const { children, ...dialogProps } = props;\n return (\n <dialog {...dialogProps} data-part=\"content\" data-uiify-alert-modal=\"\" role=\"alertdialog\">\n {children}\n </dialog>\n );\n}\nAlertModalContent.displayName = \"AlertModalContent\";\n\n/** Native alert modal action invoker. */\nexport function AlertModalAction<TAs extends ElementType = \"button\">(\n props: AlertModalActionProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalActionProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"action\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"destructive\" },\n );\n}\nAlertModalAction.displayName = \"AlertModalAction\";\n\n/** Native alert modal cancel invoker. */\nexport function AlertModalCancel<TAs extends ElementType = \"button\">(\n props: AlertModalCancelProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalCancelProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"cancel\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/alert-modal/AlertModalParts.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { renderNativeInvoker } from \"@gunkin/uiify/core/render\";\nimport type {\n AlertModalActionProps,\n AlertModalCancelProps,\n AlertModalContentProps,\n AlertModalTriggerProps,\n} from \"./types.js\";\n\n/** Native alert modal invoker with alert-modal identity and trigger anatomy. */\nexport function AlertModalTrigger<TAs extends ElementType = \"button\">(\n props: AlertModalTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalTriggerProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"trigger\",\n \"show-modal\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true },\n );\n}\nAlertModalTrigger.displayName = \"AlertModalTrigger\";\n\n/** Native alert dialog content with alert-modal identity and content anatomy. */\nexport function AlertModalContent(props: AlertModalContentProps): ReactElement {\n const { children, ...dialogProps } = props;\n return (\n <dialog {...dialogProps} data-part=\"content\" data-uiify-alert-modal=\"\" role=\"alertdialog\">\n {children}\n </dialog>\n );\n}\nAlertModalContent.displayName = \"AlertModalContent\";\n\n/** Native alert modal action invoker. */\nexport function AlertModalAction<TAs extends ElementType = \"button\">(\n props: AlertModalActionProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalActionProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"action\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"destructive\" },\n );\n}\nAlertModalAction.displayName = \"AlertModalAction\";\n\n/** Native alert modal cancel invoker. */\nexport function AlertModalCancel<TAs extends ElementType = \"button\">(\n props: AlertModalCancelProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalCancelProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"cancel\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"secondary\" },\n );\n}\nAlertModalCancel.displayName = \"AlertModalCancel\";\n"],"mappings":"AA8BI;AA7BJ,SAAS,2BAA2B;AAS7B,SAAS,kBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,KAAK;AAAA,EACjB;AACF;AACA,kBAAkB,cAAc;AAGzB,SAAS,kBAAkB,OAA6C;AAC7E,QAAM,EAAE,UAAU,GAAG,YAAY,IAAI;AACrC,SACE,oBAAC,YAAQ,GAAG,aAAa,aAAU,WAAU,0BAAuB,IAAG,MAAK,eACzE,UACH;AAEJ;AACA,kBAAkB,cAAc;AAGzB,SAAS,iBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,MAAM,SAAS,cAAc;AAAA,EACzC;AACF;AACA,iBAAiB,cAAc;AAGxB,SAAS,iBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,MAAM,SAAS,YAAY;AAAA,EACvC;AACF;AACA,iBAAiB,cAAc;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACvD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACvD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,CA8CrB"}
|
|
@@ -7,22 +7,24 @@ function Button(props) {
|
|
|
7
7
|
as,
|
|
8
8
|
render,
|
|
9
9
|
disabled = false,
|
|
10
|
-
|
|
10
|
+
selected,
|
|
11
11
|
size,
|
|
12
12
|
type,
|
|
13
13
|
variant,
|
|
14
14
|
...consumerProps
|
|
15
15
|
} = props;
|
|
16
16
|
const nativeButton = isNativeButton(as);
|
|
17
|
+
const ownsAria = "aria-pressed" in consumerProps || "aria-current" in consumerProps || "aria-selected" in consumerProps;
|
|
17
18
|
return useRenderElement({
|
|
18
19
|
as,
|
|
19
20
|
defaultTag: "button",
|
|
20
21
|
props: {
|
|
21
22
|
...consumerProps,
|
|
22
23
|
"data-uiify-button": "",
|
|
23
|
-
...shape !== void 0 ? { "data-shape": shape } : {},
|
|
24
24
|
...size !== void 0 ? { "data-size": size } : {},
|
|
25
25
|
...variant !== void 0 ? { "data-variant": variant } : {},
|
|
26
|
+
...selected ? { "data-selected": "" } : {},
|
|
27
|
+
...selected !== void 0 && nativeButton && !ownsAria ? { "aria-pressed": selected } : {},
|
|
26
28
|
...nativeButton ? { type: type ?? "button", ...disabled ? { disabled: true } : {} } : disabled ? {
|
|
27
29
|
"aria-disabled": true,
|
|
28
30
|
tabIndex: -1,
|
|
@@ -33,7 +35,7 @@ function Button(props) {
|
|
|
33
35
|
...disabled ? { "data-disabled": "" } : {}
|
|
34
36
|
},
|
|
35
37
|
render,
|
|
36
|
-
state: { disabled }
|
|
38
|
+
state: { disabled, selected: selected ?? false }
|
|
37
39
|
});
|
|
38
40
|
}
|
|
39
41
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { ButtonProps } from \"./types.js\";\n\nfunction isNativeButton(as: ElementType | undefined): boolean {\n return as === undefined || as === \"button\";\n}\n\nexport function Button<TAs extends ElementType = \"button\">(\n props: ButtonProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { ButtonProps } from \"./types.js\";\n\nfunction isNativeButton(as: ElementType | undefined): boolean {\n return as === undefined || as === \"button\";\n}\n\nexport function Button<TAs extends ElementType = \"button\">(\n props: ButtonProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n selected,\n size,\n type,\n variant,\n ...consumerProps\n } = props as ButtonProps<\"button\">;\n\n const nativeButton = isNativeButton(as);\n // A toggle button reports its state through aria-pressed; anything that already names the\n // relation itself (current page, selected tab) keeps its own attribute.\n const ownsAria =\n \"aria-pressed\" in consumerProps ||\n \"aria-current\" in consumerProps ||\n \"aria-selected\" in consumerProps;\n\n return useRenderElement({\n as,\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n \"data-uiify-button\": \"\",\n ...(size !== undefined ? { \"data-size\": size } : {}),\n ...(variant !== undefined ? { \"data-variant\": variant } : {}),\n ...(selected ? { \"data-selected\": \"\" } : {}),\n ...(selected !== undefined && nativeButton && !ownsAria ? { \"aria-pressed\": selected } : {}),\n ...(nativeButton\n ? { type: type ?? \"button\", ...(disabled ? { disabled: true } : {}) }\n : disabled\n ? {\n \"aria-disabled\": true,\n tabIndex: -1,\n onClick: (event: { preventDefault: () => void }) => {\n event.preventDefault();\n },\n }\n : {}),\n ...(disabled ? { \"data-disabled\": \"\" } : {}),\n },\n render,\n state: { disabled, selected: selected ?? false },\n });\n}\n"],"mappings":"AACA,SAAS,wBAAwB;AAGjC,SAAS,eAAe,IAAsC;AAC5D,SAAO,OAAO,UAAa,OAAO;AACpC;AAEO,SAAS,OACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,eAAe,EAAE;AAGtC,QAAM,WACJ,kBAAkB,iBAClB,kBAAkB,iBAClB,mBAAmB;AAErB,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,qBAAqB;AAAA,MACrB,GAAI,SAAS,SAAY,EAAE,aAAa,KAAK,IAAI,CAAC;AAAA,MAClD,GAAI,YAAY,SAAY,EAAE,gBAAgB,QAAQ,IAAI,CAAC;AAAA,MAC3D,GAAI,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;AAAA,MAC1C,GAAI,aAAa,UAAa,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,SAAS,IAAI,CAAC;AAAA,MAC1F,GAAI,eACA,EAAE,MAAM,QAAQ,UAAU,GAAI,WAAW,EAAE,UAAU,KAAK,IAAI,CAAC,EAAG,IAClE,WACE;AAAA,QACE,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,SAAS,CAAC,UAA0C;AAClD,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF,IACA,CAAC;AAAA,MACP,GAAI,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;AAAA,IAC5C;AAAA,IACA;AAAA,IACA,OAAO,EAAE,UAAU,UAAU,YAAY,MAAM;AAAA,EACjD,CAAC;AACH;","names":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { Button } from "./Button.js";
|
|
2
|
-
export type { ButtonOwnProps, ButtonProps,
|
|
2
|
+
export type { ButtonOwnProps, ButtonProps, ButtonSize, ButtonState, ButtonVariant, } from "./types.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACV,cAAc,EACd,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/button/index.ts"],"sourcesContent":["export { Button } from \"./Button.js\";\nexport type {\n ButtonOwnProps,\n ButtonProps,\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/index.ts"],"sourcesContent":["export { Button } from \"./Button.js\";\nexport type {\n ButtonOwnProps,\n ButtonProps,\n ButtonSize,\n ButtonState,\n ButtonVariant,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,cAAc;","names":[]}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import type { ElementType } from "react";
|
|
2
2
|
import type { RenderableProps } from "@gunkin/uiify/core/render";
|
|
3
|
-
export type ButtonVariant = "
|
|
4
|
-
export type
|
|
5
|
-
export type ButtonSize = "sm" | "md" | "lg";
|
|
3
|
+
export type ButtonVariant = "secondary" | "outline" | "ghost" | "destructive" | "link";
|
|
4
|
+
export type ButtonSize = "sm" | "md" | "lg" | "icon-sm" | "icon" | "icon-lg";
|
|
6
5
|
export interface ButtonOwnProps {
|
|
7
6
|
readonly disabled?: boolean;
|
|
7
|
+
/** Marks the button as the chosen one of a set, or a toggle that is on. */
|
|
8
|
+
readonly selected?: boolean;
|
|
8
9
|
readonly type?: "button" | "submit" | "reset";
|
|
9
|
-
readonly shape?: ButtonShape;
|
|
10
10
|
readonly size?: ButtonSize;
|
|
11
11
|
readonly variant?: ButtonVariant;
|
|
12
12
|
}
|
|
13
13
|
export interface ButtonState {
|
|
14
14
|
readonly disabled: boolean;
|
|
15
|
+
readonly selected: boolean;
|
|
15
16
|
}
|
|
16
17
|
export type ButtonProps<TAs extends ElementType = "button"> = RenderableProps<TAs, ButtonOwnProps, ButtonState, HTMLElement>;
|
|
17
18
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;AACvF,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,eAAe,CAC3E,GAAG,EACH,cAAc,EACd,WAAW,EACX,WAAW,CACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselMarkup.d.ts","sourceRoot":"","sources":["../../../src/components/carousel/CarouselMarkup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EAAE,OAAO,EACb,OAAO,EACP,YAAY,GACb,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"CarouselMarkup.d.ts","sourceRoot":"","sources":["../../../src/components/carousel/CarouselMarkup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EAAE,OAAO,EACb,OAAO,EACP,YAAY,GACb,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,CA+I3C;yBAnJe,cAAc"}
|
|
@@ -37,6 +37,8 @@ function CarouselMarkup({
|
|
|
37
37
|
type: "button",
|
|
38
38
|
"data-part": "controls",
|
|
39
39
|
"data-carousel-action": "rotation",
|
|
40
|
+
"data-uiify-button": "",
|
|
41
|
+
"data-variant": "outline",
|
|
40
42
|
hidden: !enhanced,
|
|
41
43
|
children: presentation.autoplay.requested ? labels.stop : labels.start
|
|
42
44
|
}
|
|
@@ -77,6 +79,9 @@ function CarouselMarkup({
|
|
|
77
79
|
"aria-label": labels.previous,
|
|
78
80
|
"data-part": "controls",
|
|
79
81
|
"data-carousel-action": "previous",
|
|
82
|
+
"data-size": "icon",
|
|
83
|
+
"data-uiify-button": "",
|
|
84
|
+
"data-variant": "outline",
|
|
80
85
|
hidden: !enhanced,
|
|
81
86
|
disabled: enhanced ? presentation.snapshot.atStart : void 0,
|
|
82
87
|
children: base.icons?.previous
|
|
@@ -105,6 +110,9 @@ function CarouselMarkup({
|
|
|
105
110
|
"aria-label": labels.next,
|
|
106
111
|
"data-part": "controls",
|
|
107
112
|
"data-carousel-action": "next",
|
|
113
|
+
"data-size": "icon",
|
|
114
|
+
"data-uiify-button": "",
|
|
115
|
+
"data-variant": "outline",
|
|
108
116
|
hidden: !enhanced,
|
|
109
117
|
disabled: enhanced ? presentation.snapshot.atEnd : void 0,
|
|
110
118
|
children: base.icons?.next
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/carousel/CarouselMarkup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { carouselFragment, carouselSlideId, normalizeCarouselProps } from \"./carousel-markup.js\";\nimport type { CarouselMarkupProps } from \"./types.js\";\n\nexport function CarouselMarkup({\n base: rawBase,\n rootRef,\n presentation,\n}: CarouselMarkupProps): ReactElement | null {\n const base = normalizeCarouselProps(rawBase);\n const { items, labels } = base;\n const hasControls = items.length > 1;\n\n if (items.length === 0) return null;\n\n const enhanced = presentation?.snapshot.ready === true;\n // Pagination claims a current slide as soon as the client has mounted, even before\n // the controller reports `ready` — SSR/pre-hydration markup still claims nothing.\n const showActiveDot = enhanced || presentation?.mounted === true;\n const activeIndex = presentation?.snapshot.index;\n const announcedIndex = presentation?.snapshot.settledIndex;\n const fade = enhanced && presentation.mode === \"fade\";\n const presentedIndex = fade ? (presentation.snapshot.requestedIndex ?? activeIndex) : activeIndex;\n const dotIndices =\n enhanced && !presentation.preserveFallbackFocus\n ? presentation.snapshot.pages.map((page) => page.index)\n : items.map((_, index) => index);\n\n return (\n <section\n ref={rootRef}\n id={base.id}\n aria-label={base[\"aria-label\"]}\n aria-roledescription=\"carousel\"\n data-uiify-carousel=\"\"\n data-axis={base.axis}\n {...(presentation ? { \"data-mode\": presentation.mode } : {})}\n {...(enhanced ? { \"data-enhanced\": \"\" } : {})}\n {...(base.dir ? { dir: base.dir } : {})}\n {...(base.className ? { className: base.className } : {})}\n {...(base.style ? { style: base.style } : {})}\n >\n {presentation && hasControls && presentation.autoplay ? (\n <button\n type=\"button\"\n data-part=\"controls\"\n data-carousel-action=\"rotation\"\n hidden={!enhanced}\n >\n {presentation.autoplay.requested ? labels.stop : labels.start}\n </button>\n ) : null}\n\n <div\n id={`${base.id}--viewport`}\n tabIndex={0}\n role=\"group\"\n aria-label={base[\"aria-label\"]}\n data-part=\"viewport\"\n >\n {items.map((item, index) => {\n const slideId = carouselSlideId(base.id, item.id);\n return (\n <div\n key={item.id}\n id={slideId}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${item.label}, ${index + 1} ${labels.of} ${items.length}`}\n className={item.className}\n data-part=\"slide\"\n data-carousel-index={index}\n {...(enhanced\n ? { \"data-state\": index === presentedIndex ? \"active\" : \"inactive\" }\n : {})}\n {...(fade && index !== presentedIndex ? { inert: true, \"aria-hidden\": true } : {})}\n >\n <div data-part=\"slide-content\">{item.children}</div>\n </div>\n );\n })}\n </div>\n\n {presentation && hasControls && base.navigation ? (\n <button\n type=\"button\"\n aria-label={labels.previous}\n data-part=\"controls\"\n data-carousel-action=\"previous\"\n hidden={!enhanced}\n disabled={enhanced ? presentation.snapshot.atStart : undefined}\n >\n {base.icons?.previous}\n </button>\n ) : null}\n\n {base.pagination && hasControls ? (\n <nav aria-label={labels.navigation} data-part=\"dots\">\n {dotIndices.map((itemIndex) => {\n const item = items[itemIndex];\n if (!item) return null;\n return (\n <a\n key={item.id}\n href={carouselFragment(carouselSlideId(base.id, item.id))}\n aria-label={`${labels.goTo} ${item.label}`}\n aria-current={showActiveDot && itemIndex === activeIndex ? \"true\" : undefined}\n data-part=\"dot\"\n data-carousel-index={itemIndex}\n >\n {itemIndex + 1}\n </a>\n );\n })}\n </nav>\n ) : null}\n\n {presentation && hasControls && base.navigation ? (\n <button\n type=\"button\"\n aria-label={labels.next}\n data-part=\"controls\"\n data-carousel-action=\"next\"\n hidden={!enhanced}\n disabled={enhanced ? presentation.snapshot.atEnd : undefined}\n >\n {base.icons?.next}\n </button>\n ) : null}\n\n {presentation ? (\n <div\n aria-live={presentation.autoplay?.playing ? \"off\" : \"polite\"}\n aria-atomic=\"true\"\n data-part=\"status\"\n >\n {enhanced && announcedIndex !== undefined\n ? `${items[announcedIndex]?.label ?? \"\"}, ${announcedIndex + 1} ${labels.of} ${items.length}`\n : null}\n </div>\n ) : null}\n </section>\n );\n}\nCarouselMarkup.displayName = \"CarouselMarkup\";\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/carousel/CarouselMarkup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { carouselFragment, carouselSlideId, normalizeCarouselProps } from \"./carousel-markup.js\";\nimport type { CarouselMarkupProps } from \"./types.js\";\n\nexport function CarouselMarkup({\n base: rawBase,\n rootRef,\n presentation,\n}: CarouselMarkupProps): ReactElement | null {\n const base = normalizeCarouselProps(rawBase);\n const { items, labels } = base;\n const hasControls = items.length > 1;\n\n if (items.length === 0) return null;\n\n const enhanced = presentation?.snapshot.ready === true;\n // Pagination claims a current slide as soon as the client has mounted, even before\n // the controller reports `ready` — SSR/pre-hydration markup still claims nothing.\n const showActiveDot = enhanced || presentation?.mounted === true;\n const activeIndex = presentation?.snapshot.index;\n const announcedIndex = presentation?.snapshot.settledIndex;\n const fade = enhanced && presentation.mode === \"fade\";\n const presentedIndex = fade ? (presentation.snapshot.requestedIndex ?? activeIndex) : activeIndex;\n const dotIndices =\n enhanced && !presentation.preserveFallbackFocus\n ? presentation.snapshot.pages.map((page) => page.index)\n : items.map((_, index) => index);\n\n return (\n <section\n ref={rootRef}\n id={base.id}\n aria-label={base[\"aria-label\"]}\n aria-roledescription=\"carousel\"\n data-uiify-carousel=\"\"\n data-axis={base.axis}\n {...(presentation ? { \"data-mode\": presentation.mode } : {})}\n {...(enhanced ? { \"data-enhanced\": \"\" } : {})}\n {...(base.dir ? { dir: base.dir } : {})}\n {...(base.className ? { className: base.className } : {})}\n {...(base.style ? { style: base.style } : {})}\n >\n {presentation && hasControls && presentation.autoplay ? (\n <button\n type=\"button\"\n data-part=\"controls\"\n data-carousel-action=\"rotation\"\n data-uiify-button=\"\"\n data-variant=\"outline\"\n hidden={!enhanced}\n >\n {presentation.autoplay.requested ? labels.stop : labels.start}\n </button>\n ) : null}\n\n <div\n id={`${base.id}--viewport`}\n tabIndex={0}\n role=\"group\"\n aria-label={base[\"aria-label\"]}\n data-part=\"viewport\"\n >\n {items.map((item, index) => {\n const slideId = carouselSlideId(base.id, item.id);\n return (\n <div\n key={item.id}\n id={slideId}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${item.label}, ${index + 1} ${labels.of} ${items.length}`}\n className={item.className}\n data-part=\"slide\"\n data-carousel-index={index}\n {...(enhanced\n ? { \"data-state\": index === presentedIndex ? \"active\" : \"inactive\" }\n : {})}\n {...(fade && index !== presentedIndex ? { inert: true, \"aria-hidden\": true } : {})}\n >\n <div data-part=\"slide-content\">{item.children}</div>\n </div>\n );\n })}\n </div>\n\n {presentation && hasControls && base.navigation ? (\n <button\n type=\"button\"\n aria-label={labels.previous}\n data-part=\"controls\"\n data-carousel-action=\"previous\"\n data-size=\"icon\"\n data-uiify-button=\"\"\n data-variant=\"outline\"\n hidden={!enhanced}\n disabled={enhanced ? presentation.snapshot.atStart : undefined}\n >\n {base.icons?.previous}\n </button>\n ) : null}\n\n {base.pagination && hasControls ? (\n <nav aria-label={labels.navigation} data-part=\"dots\">\n {dotIndices.map((itemIndex) => {\n const item = items[itemIndex];\n if (!item) return null;\n return (\n <a\n key={item.id}\n href={carouselFragment(carouselSlideId(base.id, item.id))}\n aria-label={`${labels.goTo} ${item.label}`}\n aria-current={showActiveDot && itemIndex === activeIndex ? \"true\" : undefined}\n data-part=\"dot\"\n data-carousel-index={itemIndex}\n >\n {itemIndex + 1}\n </a>\n );\n })}\n </nav>\n ) : null}\n\n {presentation && hasControls && base.navigation ? (\n <button\n type=\"button\"\n aria-label={labels.next}\n data-part=\"controls\"\n data-carousel-action=\"next\"\n data-size=\"icon\"\n data-uiify-button=\"\"\n data-variant=\"outline\"\n hidden={!enhanced}\n disabled={enhanced ? presentation.snapshot.atEnd : undefined}\n >\n {base.icons?.next}\n </button>\n ) : null}\n\n {presentation ? (\n <div\n aria-live={presentation.autoplay?.playing ? \"off\" : \"polite\"}\n aria-atomic=\"true\"\n data-part=\"status\"\n >\n {enhanced && announcedIndex !== undefined\n ? `${items[announcedIndex]?.label ?? \"\"}, ${announcedIndex + 1} ${labels.of} ${items.length}`\n : null}\n </div>\n ) : null}\n </section>\n );\n}\nCarouselMarkup.displayName = \"CarouselMarkup\";\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/DropdownMenu.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EAIX,YAAY,EAGb,MAAM,OAAO,CAAC;AAgBf,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAEV,6BAA6B,EAC7B,wBAAwB,EAExB,sBAAsB,EACtB,gCAAgC,EAChC,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EAGtB,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYlD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAwDlF;yBAxDe,gBAAgB;;;AA0DhC,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACpE,KAAK,EAAE,wBAAwB,CAAC,GAAG,CAAC,GACnC,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/DropdownMenu.tsx"],"names":[],"mappings":"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"}
|