@octanejs/base-ui 0.1.30 → 0.1.32

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 (201) hide show
  1. package/dist/cjs/accordion.cjs +497 -0
  2. package/dist/cjs/alert-dialog.cjs +65 -0
  3. package/dist/cjs/avatar.cjs +234 -0
  4. package/dist/cjs/button.cjs +54 -0
  5. package/dist/cjs/checkbox-group.cjs +165 -0
  6. package/dist/cjs/checkbox.cjs +475 -0
  7. package/dist/cjs/collapsible.cjs +700 -0
  8. package/dist/cjs/context-menu.cjs +257 -0
  9. package/dist/cjs/csp-provider.cjs +40 -0
  10. package/dist/cjs/dialog.cjs +741 -0
  11. package/dist/cjs/direction-provider.cjs +35 -0
  12. package/dist/cjs/field.cjs +559 -0
  13. package/dist/cjs/fieldset.cjs +101 -0
  14. package/dist/cjs/form.cjs +177 -0
  15. package/dist/cjs/index.cjs +133 -0
  16. package/dist/cjs/input.cjs +32 -0
  17. package/dist/cjs/internal.cjs +51 -0
  18. package/dist/cjs/menu.cjs +2420 -0
  19. package/dist/cjs/menubar.cjs +132 -0
  20. package/dist/cjs/merge-props.cjs +34 -0
  21. package/dist/cjs/meter.cjs +169 -0
  22. package/dist/cjs/number-field.cjs +812 -0
  23. package/dist/cjs/popover.cjs +966 -0
  24. package/dist/cjs/preview-card.cjs +632 -0
  25. package/dist/cjs/progress.cjs +206 -0
  26. package/dist/cjs/radio-group.cjs +264 -0
  27. package/dist/cjs/radio.cjs +327 -0
  28. package/dist/cjs/separator.cjs +44 -0
  29. package/dist/cjs/slider.cjs +1384 -0
  30. package/dist/cjs/switch.cjs +306 -0
  31. package/dist/cjs/tabs.cjs +727 -0
  32. package/dist/cjs/toast.cjs +1766 -0
  33. package/dist/cjs/toggle-group.cjs +118 -0
  34. package/dist/cjs/toggle.cjs +121 -0
  35. package/dist/cjs/tooltip.cjs +835 -0
  36. package/dist/cjs/unstable-use-media-query.cjs +79 -0
  37. package/dist/cjs/use-render.cjs +40 -0
  38. package/dist/cjs/utils/CSPContext.cjs +38 -0
  39. package/dist/cjs/utils/CheckboxGroupContext.cjs +40 -0
  40. package/dist/cjs/utils/CompositeRootContext.cjs +40 -0
  41. package/dist/cjs/utils/ContextMenuRootContext.cjs +42 -0
  42. package/dist/cjs/utils/DirectionContext.cjs +34 -0
  43. package/dist/cjs/utils/FloatingPortalLite.cjs +47 -0
  44. package/dist/cjs/utils/InternalBackdrop.cjs +49 -0
  45. package/dist/cjs/utils/MenubarContext.cjs +40 -0
  46. package/dist/cjs/utils/RadioGroupContext.cjs +34 -0
  47. package/dist/cjs/utils/RequestQueue.cjs +111 -0
  48. package/dist/cjs/utils/TimeoutManager.cjs +50 -0
  49. package/dist/cjs/utils/ToggleGroupContext.cjs +40 -0
  50. package/dist/cjs/utils/adaptiveOriginMiddleware.cjs +94 -0
  51. package/dist/cjs/utils/addEventListener.cjs +33 -0
  52. package/dist/cjs/utils/areArraysEqual.cjs +30 -0
  53. package/dist/cjs/utils/clamp.cjs +30 -0
  54. package/dist/cjs/utils/closePart.cjs +70 -0
  55. package/dist/cjs/utils/collapsibleOpenStateMapping.cjs +42 -0
  56. package/dist/cjs/utils/composeRefs.cjs +68 -0
  57. package/dist/cjs/utils/composite/CompositeItem.cjs +59 -0
  58. package/dist/cjs/utils/composite/CompositeList.cjs +177 -0
  59. package/dist/cjs/utils/composite/CompositeListContext.cjs +43 -0
  60. package/dist/cjs/utils/composite/CompositeRoot.cjs +118 -0
  61. package/dist/cjs/utils/composite/grid-utils.cjs +343 -0
  62. package/dist/cjs/utils/composite/gridNavigation.cjs +92 -0
  63. package/dist/cjs/utils/composite/keys.cjs +174 -0
  64. package/dist/cjs/utils/composite/list-utils.cjs +90 -0
  65. package/dist/cjs/utils/composite/useCompositeItem.cjs +63 -0
  66. package/dist/cjs/utils/composite/useCompositeListItem.cjs +104 -0
  67. package/dist/cjs/utils/composite/useCompositeRoot.cjs +263 -0
  68. package/dist/cjs/utils/constants.cjs +56 -0
  69. package/dist/cjs/utils/contains.cjs +46 -0
  70. package/dist/cjs/utils/createChangeEventDetails.cjs +92 -0
  71. package/dist/cjs/utils/dom.cjs +35 -0
  72. package/dist/cjs/utils/empty.cjs +34 -0
  73. package/dist/cjs/utils/field/FieldItemContext.cjs +34 -0
  74. package/dist/cjs/utils/field/FieldRootContext.cjs +80 -0
  75. package/dist/cjs/utils/field/FormContext.cjs +41 -0
  76. package/dist/cjs/utils/field/LabelableContext.cjs +43 -0
  77. package/dist/cjs/utils/field/LabelableProvider.cjs +115 -0
  78. package/dist/cjs/utils/field/constants.cjs +68 -0
  79. package/dist/cjs/utils/field/getCombinedFieldValidityData.cjs +36 -0
  80. package/dist/cjs/utils/field/useAriaLabelledBy.cjs +87 -0
  81. package/dist/cjs/utils/field/useFieldControlRegistration.cjs +165 -0
  82. package/dist/cjs/utils/field/useFieldValidation.cjs +285 -0
  83. package/dist/cjs/utils/field/useLabel.cjs +99 -0
  84. package/dist/cjs/utils/field/useLabelableId.cjs +105 -0
  85. package/dist/cjs/utils/field/useRegisterFieldControl.cjs +60 -0
  86. package/dist/cjs/utils/findRootOwnerId.cjs +37 -0
  87. package/dist/cjs/utils/floating/FloatingDelayGroup.cjs +219 -0
  88. package/dist/cjs/utils/floating/FloatingFocusManager.cjs +685 -0
  89. package/dist/cjs/utils/floating/FloatingPortal.cjs +230 -0
  90. package/dist/cjs/utils/floating/FloatingRootStore.cjs +87 -0
  91. package/dist/cjs/utils/floating/FloatingTree.cjs +86 -0
  92. package/dist/cjs/utils/floating/FloatingTreeStore.cjs +41 -0
  93. package/dist/cjs/utils/floating/FocusGuard.cjs +54 -0
  94. package/dist/cjs/utils/floating/composite.cjs +42 -0
  95. package/dist/cjs/utils/floating/constants.cjs +34 -0
  96. package/dist/cjs/utils/floating/createAttribute.cjs +30 -0
  97. package/dist/cjs/utils/floating/createEventEmitter.cjs +44 -0
  98. package/dist/cjs/utils/floating/element.cjs +103 -0
  99. package/dist/cjs/utils/floating/enqueueFocus.cjs +51 -0
  100. package/dist/cjs/utils/floating/event.cjs +65 -0
  101. package/dist/cjs/utils/floating/getEmptyRootContext.cjs +42 -0
  102. package/dist/cjs/utils/floating/gridNavigation.cjs +45 -0
  103. package/dist/cjs/utils/floating/markOthers.cjs +181 -0
  104. package/dist/cjs/utils/floating/nodes.cjs +48 -0
  105. package/dist/cjs/utils/floating/safePolygon.cjs +301 -0
  106. package/dist/cjs/utils/floating/tabbable.cjs +242 -0
  107. package/dist/cjs/utils/floating/types.cjs +16 -0
  108. package/dist/cjs/utils/floating/useClick.cjs +153 -0
  109. package/dist/cjs/utils/floating/useClientPoint.cjs +225 -0
  110. package/dist/cjs/utils/floating/useDismiss.cjs +506 -0
  111. package/dist/cjs/utils/floating/useFloating.cjs +186 -0
  112. package/dist/cjs/utils/floating/useFloatingRootContext.cjs +75 -0
  113. package/dist/cjs/utils/floating/useFocus.cjs +184 -0
  114. package/dist/cjs/utils/floating/useHoverFloatingInteraction.cjs +231 -0
  115. package/dist/cjs/utils/floating/useHoverInteractionSharedState.cjs +113 -0
  116. package/dist/cjs/utils/floating/useHoverReferenceInteraction.cjs +380 -0
  117. package/dist/cjs/utils/floating/useHoverShared.cjs +65 -0
  118. package/dist/cjs/utils/floating/useListNavigation.cjs +665 -0
  119. package/dist/cjs/utils/floating/useSyncedFloatingRootContext.cjs +91 -0
  120. package/dist/cjs/utils/floating/useTypeahead.cjs +187 -0
  121. package/dist/cjs/utils/formatNumber.cjs +60 -0
  122. package/dist/cjs/utils/generateId.cjs +32 -0
  123. package/dist/cjs/utils/getCssDimensions.cjs +42 -0
  124. package/dist/cjs/utils/getDefaultFormSubmitter.cjs +42 -0
  125. package/dist/cjs/utils/getDisabledMountTransitionStyles.cjs +32 -0
  126. package/dist/cjs/utils/getElementRef.cjs +35 -0
  127. package/dist/cjs/utils/getPseudoElementBounds.cjs +56 -0
  128. package/dist/cjs/utils/getStateAttributesProps.cjs +46 -0
  129. package/dist/cjs/utils/hideMiddleware.cjs +42 -0
  130. package/dist/cjs/utils/inertValue.cjs +30 -0
  131. package/dist/cjs/utils/matchesFocusVisible.cjs +38 -0
  132. package/dist/cjs/utils/mergeCleanups.cjs +37 -0
  133. package/dist/cjs/utils/mergeObjects.cjs +39 -0
  134. package/dist/cjs/utils/mergeProps.cjs +182 -0
  135. package/dist/cjs/utils/noop.cjs +29 -0
  136. package/dist/cjs/utils/number/constants.cjs +34 -0
  137. package/dist/cjs/utils/number/parse.cjs +258 -0
  138. package/dist/cjs/utils/number/types.cjs +16 -0
  139. package/dist/cjs/utils/number/validate.cjs +104 -0
  140. package/dist/cjs/utils/owner.cjs +35 -0
  141. package/dist/cjs/utils/platform.cjs +83 -0
  142. package/dist/cjs/utils/popupStateMapping.cjs +74 -0
  143. package/dist/cjs/utils/popups/index.cjs +39 -0
  144. package/dist/cjs/utils/popups/inlineRect.cjs +218 -0
  145. package/dist/cjs/utils/popups/popupStoreUtils.cjs +379 -0
  146. package/dist/cjs/utils/popups/popupTriggerMap.cjs +76 -0
  147. package/dist/cjs/utils/popups/store.cjs +118 -0
  148. package/dist/cjs/utils/popups/useTriggerFocusGuards.cjs +72 -0
  149. package/dist/cjs/utils/resolveAriaLabelledBy.cjs +35 -0
  150. package/dist/cjs/utils/resolveClassName.cjs +30 -0
  151. package/dist/cjs/utils/resolveRef.cjs +33 -0
  152. package/dist/cjs/utils/resolveStyle.cjs +30 -0
  153. package/dist/cjs/utils/serializeValue.cjs +40 -0
  154. package/dist/cjs/utils/slider/asc.cjs +30 -0
  155. package/dist/cjs/utils/slider/getMidpoint.cjs +34 -0
  156. package/dist/cjs/utils/slider/getPushedThumbValues.cjs +73 -0
  157. package/dist/cjs/utils/slider/getSliderValue.cjs +42 -0
  158. package/dist/cjs/utils/slider/replaceArrayItemAtIndex.cjs +33 -0
  159. package/dist/cjs/utils/slider/resolveThumbCollision.cjs +155 -0
  160. package/dist/cjs/utils/slider/roundValueToStep.cjs +45 -0
  161. package/dist/cjs/utils/slider/validateMinimumDistance.cjs +40 -0
  162. package/dist/cjs/utils/slider/valueArrayToPercentages.cjs +36 -0
  163. package/dist/cjs/utils/store/ReactStore.cjs +135 -0
  164. package/dist/cjs/utils/store/Store.cjs +83 -0
  165. package/dist/cjs/utils/store/createSelector.cjs +74 -0
  166. package/dist/cjs/utils/store/useStore.cjs +51 -0
  167. package/dist/cjs/utils/stringifyLocale.cjs +36 -0
  168. package/dist/cjs/utils/useAnchorPositioning.cjs +421 -0
  169. package/dist/cjs/utils/useAnchoredPopupScrollLock.cjs +59 -0
  170. package/dist/cjs/utils/useAnimationFrame.cjs +93 -0
  171. package/dist/cjs/utils/useAnimationsFinished.cjs +98 -0
  172. package/dist/cjs/utils/useBaseUiId.cjs +36 -0
  173. package/dist/cjs/utils/useButton.cjs +177 -0
  174. package/dist/cjs/utils/useCheckboxGroupParent.cjs +114 -0
  175. package/dist/cjs/utils/useControlled.cjs +47 -0
  176. package/dist/cjs/utils/useEnhancedClickHandler.cjs +60 -0
  177. package/dist/cjs/utils/useFocusableWhenDisabled.cjs +77 -0
  178. package/dist/cjs/utils/useForcedRerendering.cjs +35 -0
  179. package/dist/cjs/utils/useIsHydrating.cjs +44 -0
  180. package/dist/cjs/utils/useMixedToggleClickHandler.cjs +66 -0
  181. package/dist/cjs/utils/useOnFirstRender.cjs +35 -0
  182. package/dist/cjs/utils/useOnMount.cjs +36 -0
  183. package/dist/cjs/utils/useOpenChangeComplete.cjs +57 -0
  184. package/dist/cjs/utils/useOpenInteractionType.cjs +69 -0
  185. package/dist/cjs/utils/usePopupAutoResize.cjs +191 -0
  186. package/dist/cjs/utils/usePopupViewport.cjs +283 -0
  187. package/dist/cjs/utils/usePositioner.cjs +53 -0
  188. package/dist/cjs/utils/usePressAndHold.cjs +51 -0
  189. package/dist/cjs/utils/usePreviousValue.cjs +47 -0
  190. package/dist/cjs/utils/useRefWithInit.cjs +41 -0
  191. package/dist/cjs/utils/useRegisteredLabelId.cjs +48 -0
  192. package/dist/cjs/utils/useRenderElement.cjs +106 -0
  193. package/dist/cjs/utils/useScrollLock.cjs +232 -0
  194. package/dist/cjs/utils/useStableCallback.cjs +41 -0
  195. package/dist/cjs/utils/useTimeout.cjs +66 -0
  196. package/dist/cjs/utils/useTransitionStatus.cjs +116 -0
  197. package/dist/cjs/utils/useValueAsRef.cjs +43 -0
  198. package/dist/cjs/utils/useValueChanged.cjs +55 -0
  199. package/dist/cjs/utils/valueToPercent.cjs +30 -0
  200. package/dist/cjs/utils/visuallyHidden.cjs +49 -0
  201. package/package.json +20 -8
@@ -0,0 +1,497 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var accordion_exports = {};
20
+ __export(accordion_exports, {
21
+ Accordion: () => Accordion,
22
+ AccordionHeader: () => AccordionHeader,
23
+ AccordionItem: () => AccordionItem,
24
+ AccordionPanel: () => AccordionPanel,
25
+ AccordionPanelCssVars: () => AccordionPanelCssVars,
26
+ AccordionRoot: () => AccordionRoot,
27
+ AccordionTrigger: () => AccordionTrigger,
28
+ useAccordionItemContext: () => useAccordionItemContext,
29
+ useAccordionRootContext: () => useAccordionRootContext
30
+ });
31
+ module.exports = __toCommonJS(accordion_exports);
32
+ var import_octane = require("octane");
33
+ var import_internal = require("./internal.cjs");
34
+ var import_useRenderElement = require("./utils/useRenderElement.cjs");
35
+ var import_useBaseUiId = require("./utils/useBaseUiId.cjs");
36
+ var import_useButton = require("./utils/useButton.cjs");
37
+ var import_useControlled = require("./utils/useControlled.cjs");
38
+ var import_useStableCallback = require("./utils/useStableCallback.cjs");
39
+ var import_resolveStyle = require("./utils/resolveStyle.cjs");
40
+ var import_useTransitionStatus = require("./utils/useTransitionStatus.cjs");
41
+ var import_CompositeList = require("./utils/composite/CompositeList.cjs");
42
+ var import_useCompositeListItem = require("./utils/composite/useCompositeListItem.cjs");
43
+ var import_DirectionContext = require("./utils/DirectionContext.cjs");
44
+ var import_collapsibleOpenStateMapping = require("./utils/collapsibleOpenStateMapping.cjs");
45
+ var import_collapsible = require("./collapsible.cjs");
46
+ const rootStateAttributesMapping = {
47
+ value: () => null
48
+ };
49
+ const accordionStateAttributesMapping = {
50
+ ...import_collapsibleOpenStateMapping.collapsibleOpenStateMapping,
51
+ index(value) {
52
+ return Number.isInteger(value) ? { "data-index": String(value) } : null;
53
+ },
54
+ ...import_useTransitionStatus.transitionStatusMapping,
55
+ value: () => null
56
+ };
57
+ const triggerStateAttributesMapping = {
58
+ ...import_collapsibleOpenStateMapping.collapsibleTriggerOpenStateMapping
59
+ };
60
+ const AccordionPanelCssVars = {
61
+ accordionPanelHeight: "--accordion-panel-height",
62
+ accordionPanelWidth: "--accordion-panel-width"
63
+ };
64
+ const AccordionRootContext = (0, import_octane.createContext)(void 0);
65
+ function useAccordionRootContext() {
66
+ const context = (0, import_octane.useContext)(AccordionRootContext);
67
+ if (context === void 0) {
68
+ throw new Error(
69
+ "Base UI: AccordionRootContext is missing. Accordion parts must be placed within <Accordion.Root>."
70
+ );
71
+ }
72
+ return context;
73
+ }
74
+ const AccordionItemContext = (0, import_octane.createContext)(void 0);
75
+ function useAccordionItemContext() {
76
+ const context = (0, import_octane.useContext)(AccordionItemContext);
77
+ if (context === void 0) {
78
+ throw new Error(
79
+ "Base UI: AccordionItemContext is missing. Accordion parts must be placed within <Accordion.Item>."
80
+ );
81
+ }
82
+ return context;
83
+ }
84
+ function AccordionRoot(props) {
85
+ const slot = (0, import_internal.S)("AccordionRoot");
86
+ const {
87
+ render,
88
+ className,
89
+ disabled = false,
90
+ hiddenUntilFound: hiddenUntilFoundProp,
91
+ keepMounted: keepMountedProp,
92
+ loopFocus,
93
+ onValueChange,
94
+ multiple = false,
95
+ orientation = "vertical",
96
+ value: valueProp,
97
+ defaultValue: defaultValueProp,
98
+ style,
99
+ ref,
100
+ ...elementProps
101
+ } = props;
102
+ const direction = (0, import_DirectionContext.useDirection)();
103
+ (0, import_octane.useLayoutEffect)(
104
+ () => {
105
+ if (hiddenUntilFoundProp && keepMountedProp === false) {
106
+ console.warn(
107
+ "Base UI: The `keepMounted={false}` prop on `Accordion.Root` is ignored when `hiddenUntilFound` is enabled, since panels must remain mounted while closed."
108
+ );
109
+ }
110
+ },
111
+ [hiddenUntilFoundProp, keepMountedProp],
112
+ (0, import_internal.subSlot)(slot, "warn")
113
+ );
114
+ const defaultValue = (0, import_octane.useMemo)(
115
+ () => {
116
+ if (valueProp === void 0) {
117
+ return defaultValueProp ?? [];
118
+ }
119
+ return void 0;
120
+ },
121
+ [valueProp, defaultValueProp],
122
+ (0, import_internal.subSlot)(slot, "defaultValue")
123
+ );
124
+ const accordionItemRefs = (0, import_octane.useRef)([], (0, import_internal.subSlot)(slot, "itemRefs"));
125
+ const [value, setValue] = (0, import_useControlled.useControlled)(
126
+ { controlled: valueProp, default: defaultValue, name: "Accordion", state: "value" },
127
+ (0, import_internal.subSlot)(slot, "ctrl")
128
+ );
129
+ const handleValueChange = (0, import_useStableCallback.useStableCallback)(
130
+ (newValue, nextOpen, details) => {
131
+ if (!multiple) {
132
+ const nextValue = value[0] === newValue ? [] : [newValue];
133
+ onValueChange?.(nextValue, details);
134
+ if (details.isCanceled) {
135
+ return;
136
+ }
137
+ setValue(nextValue);
138
+ } else if (nextOpen) {
139
+ const nextOpenValues = value.slice();
140
+ nextOpenValues.push(newValue);
141
+ onValueChange?.(nextOpenValues, details);
142
+ if (details.isCanceled) {
143
+ return;
144
+ }
145
+ setValue(nextOpenValues);
146
+ } else {
147
+ const nextOpenValues = value.filter((v) => v !== newValue);
148
+ onValueChange?.(nextOpenValues, details);
149
+ if (details.isCanceled) {
150
+ return;
151
+ }
152
+ setValue(nextOpenValues);
153
+ }
154
+ },
155
+ (0, import_internal.subSlot)(slot, "valueChange")
156
+ );
157
+ const state = (0, import_octane.useMemo)(
158
+ () => ({ value, disabled, orientation }),
159
+ [value, disabled, orientation],
160
+ (0, import_internal.subSlot)(slot, "state")
161
+ );
162
+ const contextValue = (0, import_octane.useMemo)(
163
+ () => ({
164
+ disabled,
165
+ handleValueChange,
166
+ hiddenUntilFound: hiddenUntilFoundProp ?? false,
167
+ keepMounted: keepMountedProp ?? false,
168
+ state,
169
+ value
170
+ }),
171
+ [disabled, handleValueChange, hiddenUntilFoundProp, keepMountedProp, state, value],
172
+ (0, import_internal.subSlot)(slot, "ctx")
173
+ );
174
+ const element = (0, import_useRenderElement.useRenderElement)(
175
+ "div",
176
+ { render, className, style },
177
+ {
178
+ state,
179
+ ref,
180
+ props: [{ dir: direction }, elementProps],
181
+ stateAttributesMapping: rootStateAttributesMapping
182
+ },
183
+ (0, import_internal.subSlot)(slot, "re")
184
+ );
185
+ return (0, import_octane.createElement)(AccordionRootContext.Provider, {
186
+ value: contextValue,
187
+ children: (0, import_octane.createElement)(import_CompositeList.CompositeList, {
188
+ elementsRef: accordionItemRefs,
189
+ children: element
190
+ })
191
+ });
192
+ }
193
+ function AccordionItem(props) {
194
+ const slot = (0, import_internal.S)("AccordionItem");
195
+ const {
196
+ className,
197
+ disabled: disabledProp = false,
198
+ onOpenChange: onOpenChangeProp,
199
+ render,
200
+ value: valueProp,
201
+ style,
202
+ ref,
203
+ ...elementProps
204
+ } = props;
205
+ const { ref: listItemRef, index } = (0, import_useCompositeListItem.useCompositeListItem)((0, import_internal.subSlot)(slot, "listItem"));
206
+ const {
207
+ disabled: contextDisabled,
208
+ handleValueChange,
209
+ state: rootState,
210
+ value: openValues
211
+ } = useAccordionRootContext();
212
+ const fallbackValue = (0, import_useBaseUiId.useBaseUiId)(void 0, (0, import_internal.subSlot)(slot, "fallbackValue"));
213
+ const value = valueProp ?? fallbackValue;
214
+ const disabled = disabledProp || contextDisabled;
215
+ const isOpen = (0, import_octane.useMemo)(
216
+ () => {
217
+ if (!openValues) {
218
+ return false;
219
+ }
220
+ for (let i = 0; i < openValues.length; i += 1) {
221
+ if (openValues[i] === value) {
222
+ return true;
223
+ }
224
+ }
225
+ return false;
226
+ },
227
+ [openValues, value],
228
+ (0, import_internal.subSlot)(slot, "isOpen")
229
+ );
230
+ const onOpenChange = (0, import_useStableCallback.useStableCallback)(
231
+ (nextOpen, eventDetails) => {
232
+ onOpenChangeProp?.(nextOpen, eventDetails);
233
+ if (eventDetails.isCanceled) {
234
+ return;
235
+ }
236
+ handleValueChange(value, nextOpen, eventDetails);
237
+ },
238
+ (0, import_internal.subSlot)(slot, "onOpenChange")
239
+ );
240
+ const collapsible = (0, import_collapsible.useCollapsibleRoot)(
241
+ { open: isOpen, onOpenChange, disabled },
242
+ (0, import_internal.subSlot)(slot, "collapsible")
243
+ );
244
+ const collapsibleState = (0, import_octane.useMemo)(
245
+ () => ({
246
+ open: collapsible.open,
247
+ disabled: collapsible.disabled,
248
+ transitionStatus: collapsible.transitionStatus
249
+ }),
250
+ [collapsible.open, collapsible.disabled, collapsible.transitionStatus],
251
+ (0, import_internal.subSlot)(slot, "collapsibleState")
252
+ );
253
+ const collapsibleContext = (0, import_octane.useMemo)(
254
+ () => ({ ...collapsible, onOpenChange, state: collapsibleState }),
255
+ [collapsible, collapsibleState, onOpenChange],
256
+ (0, import_internal.subSlot)(slot, "collapsibleCtx")
257
+ );
258
+ const state = (0, import_octane.useMemo)(
259
+ () => ({
260
+ ...rootState,
261
+ hidden: !isOpen && !collapsible.mounted,
262
+ index,
263
+ disabled,
264
+ open: isOpen
265
+ }),
266
+ [collapsible.mounted, disabled, index, isOpen, rootState],
267
+ (0, import_internal.subSlot)(slot, "state")
268
+ );
269
+ const defaultTriggerId = (0, import_useBaseUiId.useBaseUiId)(void 0, (0, import_internal.subSlot)(slot, "defaultTriggerId"));
270
+ const [triggerId, setTriggerId] = (0, import_octane.useState)(
271
+ void 0,
272
+ (0, import_internal.subSlot)(slot, "triggerId")
273
+ );
274
+ const accordionItemContext = (0, import_octane.useMemo)(
275
+ () => ({
276
+ open: isOpen,
277
+ state,
278
+ setTriggerId,
279
+ triggerId: triggerId ?? defaultTriggerId
280
+ }),
281
+ [defaultTriggerId, isOpen, state, setTriggerId, triggerId],
282
+ (0, import_internal.subSlot)(slot, "itemCtx")
283
+ );
284
+ const element = (0, import_useRenderElement.useRenderElement)(
285
+ "div",
286
+ { render, className, style },
287
+ {
288
+ state,
289
+ ref: [ref, listItemRef],
290
+ props: elementProps,
291
+ stateAttributesMapping: accordionStateAttributesMapping
292
+ },
293
+ (0, import_internal.subSlot)(slot, "re")
294
+ );
295
+ return (0, import_octane.createElement)(import_collapsible.CollapsibleRootContext.Provider, {
296
+ value: collapsibleContext,
297
+ children: (0, import_octane.createElement)(AccordionItemContext.Provider, {
298
+ value: accordionItemContext,
299
+ children: element
300
+ })
301
+ });
302
+ }
303
+ function AccordionHeader(props) {
304
+ const slot = (0, import_internal.S)("AccordionHeader");
305
+ const { render, className, style, ref, ...elementProps } = props;
306
+ const { state } = useAccordionItemContext();
307
+ return (0, import_useRenderElement.useRenderElement)(
308
+ "h3",
309
+ { render, className, style },
310
+ {
311
+ state,
312
+ ref,
313
+ props: elementProps,
314
+ stateAttributesMapping: accordionStateAttributesMapping
315
+ },
316
+ (0, import_internal.subSlot)(slot, "re")
317
+ );
318
+ }
319
+ function AccordionTrigger(props) {
320
+ const slot = (0, import_internal.S)("AccordionTrigger");
321
+ const {
322
+ disabled: disabledProp,
323
+ className,
324
+ id: idProp,
325
+ render,
326
+ nativeButton = true,
327
+ style,
328
+ ref,
329
+ ...elementProps
330
+ } = props;
331
+ const { panelId, open, handleTrigger, disabled: contextDisabled } = (0, import_collapsible.useCollapsibleRootContext)();
332
+ const disabled = disabledProp || contextDisabled;
333
+ const { getButtonProps, buttonRef } = (0, import_useButton.useButton)(
334
+ { disabled, focusableWhenDisabled: true, native: nativeButton },
335
+ (0, import_internal.subSlot)(slot, "button")
336
+ );
337
+ const { state, setTriggerId, triggerId: id } = useAccordionItemContext();
338
+ (0, import_octane.useLayoutEffect)(
339
+ () => {
340
+ if (idProp) {
341
+ setTriggerId(idProp);
342
+ }
343
+ return () => {
344
+ setTriggerId(void 0);
345
+ };
346
+ },
347
+ [idProp, setTriggerId],
348
+ (0, import_internal.subSlot)(slot, "registerId")
349
+ );
350
+ return (0, import_useRenderElement.useRenderElement)(
351
+ "button",
352
+ { render, className, style },
353
+ {
354
+ state,
355
+ ref: [ref, buttonRef],
356
+ props: [
357
+ {
358
+ "aria-controls": open ? panelId : void 0,
359
+ "aria-expanded": open,
360
+ id,
361
+ onClick: handleTrigger
362
+ },
363
+ elementProps,
364
+ getButtonProps
365
+ ],
366
+ stateAttributesMapping: triggerStateAttributesMapping
367
+ },
368
+ (0, import_internal.subSlot)(slot, "re")
369
+ );
370
+ }
371
+ function AccordionPanel(props) {
372
+ const slot = (0, import_internal.S)("AccordionPanel");
373
+ const {
374
+ className,
375
+ hiddenUntilFound: hiddenUntilFoundProp,
376
+ keepMounted: keepMountedProp,
377
+ id: idProp,
378
+ render,
379
+ style,
380
+ ref,
381
+ ...elementProps
382
+ } = props;
383
+ const { hiddenUntilFound: contextHiddenUntilFound, keepMounted: contextKeepMounted } = useAccordionRootContext();
384
+ const {
385
+ mounted,
386
+ onOpenChange,
387
+ open,
388
+ panelId,
389
+ setMounted,
390
+ setOpen,
391
+ setPanelIdState,
392
+ transitionStatus
393
+ } = (0, import_collapsible.useCollapsibleRootContext)();
394
+ const hiddenUntilFound = hiddenUntilFoundProp ?? contextHiddenUntilFound;
395
+ const keepMounted = keepMountedProp ?? contextKeepMounted;
396
+ (0, import_octane.useLayoutEffect)(
397
+ () => {
398
+ if (keepMountedProp === false && hiddenUntilFound) {
399
+ console.warn(
400
+ "Base UI: The `keepMounted={false}` prop on an `Accordion.Panel` is ignored when `hiddenUntilFound` is enabled on the panel or root, since the panel must remain mounted while closed."
401
+ );
402
+ }
403
+ },
404
+ [hiddenUntilFound, keepMountedProp],
405
+ (0, import_internal.subSlot)(slot, "warn")
406
+ );
407
+ (0, import_octane.useLayoutEffect)(
408
+ () => {
409
+ if (idProp) {
410
+ setPanelIdState(idProp);
411
+ return () => {
412
+ setPanelIdState(void 0);
413
+ };
414
+ }
415
+ return void 0;
416
+ },
417
+ [idProp, setPanelIdState],
418
+ (0, import_internal.subSlot)(slot, "registerId")
419
+ );
420
+ const {
421
+ height,
422
+ props: panelProps,
423
+ panelRef,
424
+ shouldPreventOpenAnimation,
425
+ shouldRender,
426
+ transitionStatus: panelTransitionStatus,
427
+ width
428
+ } = (0, import_collapsible.useCollapsiblePanel)(
429
+ {
430
+ hiddenUntilFound,
431
+ id: idProp ?? panelId,
432
+ keepMounted,
433
+ mounted,
434
+ onOpenChange,
435
+ open,
436
+ setMounted,
437
+ setOpen,
438
+ transitionStatus
439
+ },
440
+ (0, import_internal.subSlot)(slot, "panel")
441
+ );
442
+ const { state, triggerId } = useAccordionItemContext();
443
+ const panelState = {
444
+ ...state,
445
+ transitionStatus: panelTransitionStatus
446
+ };
447
+ const resolvedStyle = (0, import_resolveStyle.resolveStyle)(style, panelState);
448
+ const element = (0, import_useRenderElement.useRenderElement)(
449
+ "div",
450
+ { render, className, style: void 0 },
451
+ {
452
+ state: panelState,
453
+ ref: [ref, panelRef],
454
+ props: [
455
+ panelProps,
456
+ {
457
+ "aria-labelledby": triggerId,
458
+ role: "region",
459
+ style: {
460
+ [AccordionPanelCssVars.accordionPanelHeight]: height === void 0 ? "auto" : `${height}px`,
461
+ [AccordionPanelCssVars.accordionPanelWidth]: width === void 0 ? "auto" : `${width}px`
462
+ }
463
+ },
464
+ elementProps,
465
+ resolvedStyle ? { style: resolvedStyle } : void 0,
466
+ // The public `style` prop is resolved above so a temporary `animationName: 'none'`
467
+ // can still win after the user's inline styles have been merged.
468
+ shouldPreventOpenAnimation ? { style: { animationName: "none" } } : void 0
469
+ ],
470
+ stateAttributesMapping: accordionStateAttributesMapping
471
+ },
472
+ (0, import_internal.subSlot)(slot, "re")
473
+ );
474
+ if (!shouldRender) {
475
+ return null;
476
+ }
477
+ return element;
478
+ }
479
+ const Accordion = {
480
+ Root: AccordionRoot,
481
+ Item: AccordionItem,
482
+ Header: AccordionHeader,
483
+ Trigger: AccordionTrigger,
484
+ Panel: AccordionPanel
485
+ };
486
+ // Annotate the CommonJS export names for ESM import in node:
487
+ 0 && (module.exports = {
488
+ Accordion,
489
+ AccordionHeader,
490
+ AccordionItem,
491
+ AccordionPanel,
492
+ AccordionPanelCssVars,
493
+ AccordionRoot,
494
+ AccordionTrigger,
495
+ useAccordionItemContext,
496
+ useAccordionRootContext
497
+ });
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var alert_dialog_exports = {};
20
+ __export(alert_dialog_exports, {
21
+ AlertDialog: () => AlertDialog,
22
+ AlertDialogHandle: () => AlertDialogHandle,
23
+ createAlertDialogHandle: () => createAlertDialogHandle
24
+ });
25
+ module.exports = __toCommonJS(alert_dialog_exports);
26
+ var import_dialog = require("./dialog.cjs");
27
+ const alertDialogState = {
28
+ modal: true,
29
+ disablePointerDismissal: true,
30
+ role: "alertdialog"
31
+ };
32
+ class AlertDialogHandle extends import_dialog.DialogHandle {
33
+ constructor(store) {
34
+ const alertDialogStore = store ?? new import_dialog.DialogStore(alertDialogState);
35
+ super(alertDialogStore);
36
+ if (store) {
37
+ this.store.update(alertDialogState);
38
+ }
39
+ }
40
+ }
41
+ function createAlertDialogHandle() {
42
+ return new AlertDialogHandle();
43
+ }
44
+ function AlertDialogRoot(props) {
45
+ return (0, import_dialog.useRenderDialogRoot)(props, "alert-dialog");
46
+ }
47
+ const AlertDialog = {
48
+ Root: AlertDialogRoot,
49
+ Trigger: import_dialog.Dialog.Trigger,
50
+ Portal: import_dialog.Dialog.Portal,
51
+ Backdrop: import_dialog.Dialog.Backdrop,
52
+ Popup: import_dialog.Dialog.Popup,
53
+ Viewport: import_dialog.Dialog.Viewport,
54
+ Title: import_dialog.Dialog.Title,
55
+ Description: import_dialog.Dialog.Description,
56
+ Close: import_dialog.Dialog.Close,
57
+ createHandle: createAlertDialogHandle,
58
+ Handle: AlertDialogHandle
59
+ };
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ AlertDialog,
63
+ AlertDialogHandle,
64
+ createAlertDialogHandle
65
+ });