@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.
Files changed (165) hide show
  1. package/README.md +46 -1
  2. package/agents/components.md +80 -0
  3. package/agents/index.md +179 -0
  4. package/agents/reference/components/accordion.md +35 -0
  5. package/agents/reference/components/alert-modal.md +63 -0
  6. package/agents/reference/components/breadcrumb.md +72 -0
  7. package/agents/reference/components/button.md +40 -0
  8. package/agents/reference/components/candle-chart.md +107 -0
  9. package/agents/reference/components/carousel.md +274 -0
  10. package/agents/reference/components/checkbox.md +32 -0
  11. package/agents/reference/components/collapsible.md +26 -0
  12. package/agents/reference/components/color-picker.md +33 -0
  13. package/agents/reference/components/combobox.md +193 -0
  14. package/agents/reference/components/context-menu.md +129 -0
  15. package/agents/reference/components/drawer.md +215 -0
  16. package/agents/reference/components/dropdown-menu.md +178 -0
  17. package/agents/reference/components/field.md +76 -0
  18. package/agents/reference/components/file-upload.md +131 -0
  19. package/agents/reference/components/form.md +28 -0
  20. package/agents/reference/components/header.md +44 -0
  21. package/agents/reference/components/hover-card.md +54 -0
  22. package/agents/reference/components/input.md +29 -0
  23. package/agents/reference/components/line-chart.md +104 -0
  24. package/agents/reference/components/modal.md +106 -0
  25. package/agents/reference/components/number-field.md +60 -0
  26. package/agents/reference/components/otp-input.md +68 -0
  27. package/agents/reference/components/pagination.md +112 -0
  28. package/agents/reference/components/popup.md +111 -0
  29. package/agents/reference/components/radio-group.md +37 -0
  30. package/agents/reference/components/rating.md +43 -0
  31. package/agents/reference/components/segmented-control.md +51 -0
  32. package/agents/reference/components/select.md +60 -0
  33. package/agents/reference/components/skeleton.md +29 -0
  34. package/agents/reference/components/slider.md +71 -0
  35. package/agents/reference/components/spinner.md +34 -0
  36. package/agents/reference/components/switch.md +27 -0
  37. package/agents/reference/components/table-of-contents.md +185 -0
  38. package/agents/reference/components/table.md +189 -0
  39. package/agents/reference/components/tabs.md +42 -0
  40. package/agents/reference/components/tags-input.md +123 -0
  41. package/agents/reference/components/textarea.md +31 -0
  42. package/agents/reference/components/toast.md +151 -0
  43. package/agents/reference/components/toggle-group.md +50 -0
  44. package/agents/reference/components/toggle.md +26 -0
  45. package/agents/reference/components/toolbar.md +69 -0
  46. package/agents/reference/components/tooltip.md +76 -0
  47. package/agents/reference/components/virtual-scroll.md +97 -0
  48. package/agents/reference/elements/choice.md +55 -0
  49. package/agents/reference/elements/details.md +45 -0
  50. package/agents/reference/elements/dialog.md +43 -0
  51. package/agents/reference/elements/invoker.md +28 -0
  52. package/agents/reference/elements/popover.md +53 -0
  53. package/dist/components/alert-modal/AlertModalParts.js +1 -1
  54. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  55. package/dist/components/button/Button.d.ts.map +1 -1
  56. package/dist/components/button/Button.js +5 -3
  57. package/dist/components/button/Button.js.map +1 -1
  58. package/dist/components/button/index.d.ts +1 -1
  59. package/dist/components/button/index.d.ts.map +1 -1
  60. package/dist/components/button/index.js.map +1 -1
  61. package/dist/components/button/types.d.ts +5 -4
  62. package/dist/components/button/types.d.ts.map +1 -1
  63. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  64. package/dist/components/carousel/CarouselMarkup.js +8 -0
  65. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  66. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  67. package/dist/components/dropdown-menu/DropdownMenu.js +0 -2
  68. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  69. package/dist/components/dropdown-menu/types.d.ts +0 -1
  70. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  71. package/dist/components/index.d.ts +1 -0
  72. package/dist/components/index.d.ts.map +1 -1
  73. package/dist/components/index.js +1 -0
  74. package/dist/components/index.js.map +1 -1
  75. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  76. package/dist/components/internal/choice-family/ChoiceGroup.js +2 -3
  77. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  78. package/dist/components/internal/choice-family/types.d.ts +2 -2
  79. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  80. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  81. package/dist/components/pagination/Pagination.js +11 -0
  82. package/dist/components/pagination/Pagination.js.map +1 -1
  83. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  84. package/dist/components/pagination/PaginationShell.js +26 -1
  85. package/dist/components/pagination/PaginationShell.js.map +1 -1
  86. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  87. package/dist/components/segmented-control/SegmentedControl.js +1 -0
  88. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  89. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  90. package/dist/components/segmented-control/client/SegmentedControlClient.js +1 -0
  91. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  92. package/dist/components/table-of-contents/TableOfContents.d.ts +22 -0
  93. package/dist/components/table-of-contents/TableOfContents.d.ts.map +1 -0
  94. package/dist/components/table-of-contents/TableOfContents.js +142 -0
  95. package/dist/components/table-of-contents/TableOfContents.js.map +1 -0
  96. package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts +18 -0
  97. package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts.map +1 -0
  98. package/dist/components/table-of-contents/client/TableOfContentsClient.js +140 -0
  99. package/dist/components/table-of-contents/client/TableOfContentsClient.js.map +1 -0
  100. package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts +7 -0
  101. package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts.map +1 -0
  102. package/dist/components/table-of-contents/client/TableOfContentsClientParts.js +48 -0
  103. package/dist/components/table-of-contents/client/TableOfContentsClientParts.js.map +1 -0
  104. package/dist/components/table-of-contents/client/index.d.ts +5 -0
  105. package/dist/components/table-of-contents/client/index.d.ts.map +1 -0
  106. package/dist/components/table-of-contents/client/index.js +23 -0
  107. package/dist/components/table-of-contents/client/index.js.map +1 -0
  108. package/dist/components/table-of-contents/client/table-of-contents-context.d.ts +3 -0
  109. package/dist/components/table-of-contents/client/table-of-contents-context.d.ts.map +1 -0
  110. package/dist/components/table-of-contents/client/table-of-contents-context.js +7 -0
  111. package/dist/components/table-of-contents/client/table-of-contents-context.js.map +1 -0
  112. package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts +3 -0
  113. package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts.map +1 -0
  114. package/dist/components/table-of-contents/client/table-of-contents-interactions.js +144 -0
  115. package/dist/components/table-of-contents/client/table-of-contents-interactions.js.map +1 -0
  116. package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts +3 -0
  117. package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts.map +1 -0
  118. package/dist/components/table-of-contents/client/table-of-contents-pointer.js +94 -0
  119. package/dist/components/table-of-contents/client/table-of-contents-pointer.js.map +1 -0
  120. package/dist/components/table-of-contents/client.d.ts +1 -0
  121. package/dist/components/table-of-contents/client.js +1 -0
  122. package/dist/components/table-of-contents/index.d.ts +3 -0
  123. package/dist/components/table-of-contents/index.d.ts.map +1 -0
  124. package/dist/components/table-of-contents/index.js +21 -0
  125. package/dist/components/table-of-contents/index.js.map +1 -0
  126. package/dist/components/table-of-contents/scrollspy-selection.d.ts +4 -0
  127. package/dist/components/table-of-contents/scrollspy-selection.d.ts.map +1 -0
  128. package/dist/components/table-of-contents/scrollspy-selection.js +31 -0
  129. package/dist/components/table-of-contents/scrollspy-selection.js.map +1 -0
  130. package/dist/components/table-of-contents/scrollspy.d.ts +4 -0
  131. package/dist/components/table-of-contents/scrollspy.d.ts.map +1 -0
  132. package/dist/components/table-of-contents/scrollspy.js +178 -0
  133. package/dist/components/table-of-contents/scrollspy.js.map +1 -0
  134. package/dist/components/table-of-contents/types.d.ts +123 -0
  135. package/dist/components/table-of-contents/types.d.ts.map +1 -0
  136. package/dist/components/table-of-contents/types.js +1 -0
  137. package/dist/components/table-of-contents/types.js.map +1 -0
  138. package/dist/components/table-of-contents.d.ts +1 -0
  139. package/dist/components/table-of-contents.js +1 -0
  140. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  141. package/dist/components/toggle/Toggle.js +12 -1
  142. package/dist/components/toggle/Toggle.js.map +1 -1
  143. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  144. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  145. package/dist/components/toggle-group/ToggleGroup.js +6 -1
  146. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  147. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  148. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  149. package/dist/components/toggle-group/client/ToggleGroupClient.js +19 -6
  150. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  151. package/dist/components/toggle-group/types.d.ts +3 -3
  152. package/dist/components/toggle-group/types.d.ts.map +1 -1
  153. package/dist/components/toolbar/ToolbarShell.d.ts.map +1 -1
  154. package/dist/components/toolbar/ToolbarShell.js +5 -2
  155. package/dist/components/toolbar/ToolbarShell.js.map +1 -1
  156. package/dist/components/toolbar/types.d.ts +2 -1
  157. package/dist/components/toolbar/types.d.ts.map +1 -1
  158. package/dist/core/render-native-invoker.d.ts +1 -1
  159. package/dist/core/render-native-invoker.d.ts.map +1 -1
  160. package/dist/core/render-native-invoker.js.map +1 -1
  161. package/dist/styles/index.css +1 -1
  162. package/package.json +4 -2
  163. package/skills/uiify/SKILL.md +167 -0
  164. package/skills/uiify/scripts/lint.mjs +56 -0
  165. 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.
@@ -40,7 +40,7 @@ function AlertModalCancel(props) {
40
40
  "request-close",
41
41
  target,
42
42
  consumerProps,
43
- { button: true, variant: "ghost" }
43
+ { button: true, variant: "secondary" }
44
44
  );
45
45
  }
46
46
  AlertModalCancel.displayName = "AlertModalCancel";
@@ -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: \"ghost\" },\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,QAAQ;AAAA,EACnC;AACF;AACA,iBAAiB,cAAc;","names":[]}
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,CAuCrB"}
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
- shape,
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 shape,\n size,\n type,\n variant,\n ...consumerProps\n } = props as ButtonProps<\"button\">;\n\n const nativeButton = isNativeButton(as);\n\n return useRenderElement({\n as,\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n \"data-uiify-button\": \"\",\n ...(shape !== undefined ? { \"data-shape\": shape } : {}),\n ...(size !== undefined ? { \"data-size\": size } : {}),\n ...(variant !== undefined ? { \"data-variant\": variant } : {}),\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 },\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;AAEtC,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,qBAAqB;AAAA,MACrB,GAAI,UAAU,SAAY,EAAE,cAAc,MAAM,IAAI,CAAC;AAAA,MACrD,GAAI,SAAS,SAAY,EAAE,aAAa,KAAK,IAAI,CAAC;AAAA,MAClD,GAAI,YAAY,SAAY,EAAE,gBAAgB,QAAQ,IAAI,CAAC;AAAA,MAC3D,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,SAAS;AAAA,EACpB,CAAC;AACH;","names":[]}
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, ButtonShape, ButtonSize, ButtonState, ButtonVariant, } from "./types.js";
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,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC"}
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 ButtonShape,\n ButtonSize,\n ButtonState,\n ButtonVariant,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,cAAc;","names":[]}
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 = "solid" | "outline" | "ghost" | "destructive";
4
- export type ButtonShape = "square" | "circle";
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,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,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;CAC5B;AAED,MAAM,MAAM,WAAW,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,eAAe,CAC3E,GAAG,EACH,cAAc,EACd,WAAW,EACX,WAAW,CACZ,CAAC"}
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,CAuI3C;yBA3Ie,cAAc"}
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":"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"}
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/DropdownMenu.tsx"],"names":[],"mappings":"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"}