astralis-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +89 -0
- package/dist/components/buttons/button/button.js +83 -0
- package/dist/components/buttons/button/button.styles.js +69 -0
- package/dist/components/buttons/button-group/button-group.context.js +10 -0
- package/dist/components/buttons/button-group/button-group.js +42 -0
- package/dist/components/buttons/button-group/button-group.styles.js +39 -0
- package/dist/components/buttons/theme-toggle/theme-toggle.js +53 -0
- package/dist/components/data-display/avatar/avatar.context.js +10 -0
- package/dist/components/data-display/avatar/avatar.styles.js +40 -0
- package/dist/components/data-display/avatar/components/avatar-badge.js +24 -0
- package/dist/components/data-display/avatar/components/avatar-group.js +30 -0
- package/dist/components/data-display/avatar/components/avatar-root.js +57 -0
- package/dist/components/data-display/avatar/index.js +13 -0
- package/dist/components/data-display/badge/badge.js +12 -0
- package/dist/components/data-display/badge/badge.styles.js +25 -0
- package/dist/components/data-display/calendar/calendar.context.js +13 -0
- package/dist/components/data-display/calendar/components/calendar-cell.js +60 -0
- package/dist/components/data-display/calendar/components/calendar-grid.js +106 -0
- package/dist/components/data-display/calendar/components/calendar-header.js +23 -0
- package/dist/components/data-display/calendar/components/calendar-next-trigger.js +34 -0
- package/dist/components/data-display/calendar/components/calendar-prev-trigger.js +34 -0
- package/dist/components/data-display/calendar/components/calendar-root.js +154 -0
- package/dist/components/data-display/calendar/components/calendar-view-trigger.js +28 -0
- package/dist/components/data-display/calendar/components/calendar-weekdays.js +43 -0
- package/dist/components/data-display/calendar/index.js +30 -0
- package/dist/components/data-display/card/card.context.js +10 -0
- package/dist/components/data-display/card/card.styles.js +30 -0
- package/dist/components/data-display/card/components/card-body.js +19 -0
- package/dist/components/data-display/card/components/card-description.js +25 -0
- package/dist/components/data-display/card/components/card-footer.js +32 -0
- package/dist/components/data-display/card/components/card-header.js +37 -0
- package/dist/components/data-display/card/components/card-root.js +30 -0
- package/dist/components/data-display/card/components/card-title.js +25 -0
- package/dist/components/data-display/card/index.js +24 -0
- package/dist/components/data-display/data-list/components/data-list-item.js +20 -0
- package/dist/components/data-display/data-list/components/data-list-label.js +23 -0
- package/dist/components/data-display/data-list/components/data-list-root.js +11 -0
- package/dist/components/data-display/data-list/components/data-list-value.js +12 -0
- package/dist/components/data-display/data-list/data-list.context.js +12 -0
- package/dist/components/data-display/data-list/index.js +16 -0
- package/dist/components/data-display/image/components/image-group.js +79 -0
- package/dist/components/data-display/image/components/image-lightbox.js +188 -0
- package/dist/components/data-display/image/components/image-root.js +98 -0
- package/dist/components/data-display/image/components/image.constants.js +28 -0
- package/dist/components/data-display/image/index.js +11 -0
- package/dist/components/data-display/marquee/components/marquee-item.js +27 -0
- package/dist/components/data-display/marquee/components/marquee-root.js +130 -0
- package/dist/components/data-display/marquee/index.js +11 -0
- package/dist/components/data-display/qr-code/index.js +7 -0
- package/dist/components/data-display/qr-code/qr-code.js +203 -0
- package/dist/components/data-display/stat/components/stat-help-text.js +9 -0
- package/dist/components/data-display/stat/components/stat-indicator.js +23 -0
- package/dist/components/data-display/stat/components/stat-label.js +9 -0
- package/dist/components/data-display/stat/components/stat-root.js +10 -0
- package/dist/components/data-display/stat/components/stat-value.js +9 -0
- package/dist/components/data-display/stat/index.js +19 -0
- package/dist/components/data-display/stat/stat.context.js +6 -0
- package/dist/components/data-display/table/components/table-body.js +9 -0
- package/dist/components/data-display/table/components/table-caption.js +26 -0
- package/dist/components/data-display/table/components/table-cell.js +12 -0
- package/dist/components/data-display/table/components/table-footer.js +9 -0
- package/dist/components/data-display/table/components/table-head.js +20 -0
- package/dist/components/data-display/table/components/table-header.js +22 -0
- package/dist/components/data-display/table/components/table-root.js +20 -0
- package/dist/components/data-display/table/components/table-row.js +23 -0
- package/dist/components/data-display/table/index.js +28 -0
- package/dist/components/data-display/table/table.context.js +12 -0
- package/dist/components/data-display/table/table.styles.js +9 -0
- package/dist/components/data-display/tag/components/checkable-tag-group.js +37 -0
- package/dist/components/data-display/tag/components/checkable-tag.js +45 -0
- package/dist/components/data-display/tag/components/tag-root.js +52 -0
- package/dist/components/data-display/tag/index.js +14 -0
- package/dist/components/data-display/tag/tag.styles.js +27 -0
- package/dist/components/data-display/timeline/components/timeline-content.js +23 -0
- package/dist/components/data-display/timeline/components/timeline-indicator.js +21 -0
- package/dist/components/data-display/timeline/components/timeline-item.js +23 -0
- package/dist/components/data-display/timeline/components/timeline-root.js +12 -0
- package/dist/components/data-display/timeline/index.js +20 -0
- package/dist/components/data-display/timeline/timeline.context.js +18 -0
- package/dist/components/data-display/timeline/timeline.styles.js +33 -0
- package/dist/components/data-entry/checkbox/checkbox.context.js +12 -0
- package/dist/components/data-entry/checkbox/checkbox.styles.js +14 -0
- package/dist/components/data-entry/checkbox/components/checkbox-group.js +38 -0
- package/dist/components/data-entry/checkbox/components/checkbox.js +86 -0
- package/dist/components/data-entry/checkbox/index.js +11 -0
- package/dist/components/data-entry/combobox/combobox.js +178 -0
- package/dist/components/data-entry/field/components/field-error-text.js +47 -0
- package/dist/components/data-entry/field/components/field-help-text.js +30 -0
- package/dist/components/data-entry/field/components/field-label.js +35 -0
- package/dist/components/data-entry/field/components/field-root.js +45 -0
- package/dist/components/data-entry/field/field.context.js +10 -0
- package/dist/components/data-entry/field/index.js +17 -0
- package/dist/components/data-entry/input/components/input-group.js +15 -0
- package/dist/components/data-entry/input/components/input-password.js +42 -0
- package/dist/components/data-entry/input/components/input-search.js +48 -0
- package/dist/components/data-entry/input/components/input-textarea.js +53 -0
- package/dist/components/data-entry/input/components/input.js +44 -0
- package/dist/components/data-entry/input/index.js +18 -0
- package/dist/components/data-entry/input/input.context.js +13 -0
- package/dist/components/data-entry/input/input.styles.js +48 -0
- package/dist/components/data-entry/multi-select/components/multi-select.js +301 -0
- package/dist/components/data-entry/multi-select/multi-select.styles.js +47 -0
- package/dist/components/data-entry/number-input/number-input.js +97 -0
- package/dist/components/data-entry/pin-input/components/pin-input.js +127 -0
- package/dist/components/data-entry/pin-input/pin-input.styles.js +35 -0
- package/dist/components/data-entry/radio/components/radio-group.js +38 -0
- package/dist/components/data-entry/radio/components/radio.js +80 -0
- package/dist/components/data-entry/radio/index.js +11 -0
- package/dist/components/data-entry/radio/radio.context.js +10 -0
- package/dist/components/data-entry/radio/radio.styles.js +14 -0
- package/dist/components/data-entry/select/components/select.js +208 -0
- package/dist/components/data-entry/select/select.styles.js +35 -0
- package/dist/components/data-entry/shared/options.js +49 -0
- package/dist/components/data-entry/slider/components/slider.js +395 -0
- package/dist/components/data-entry/slider/slider.styles.js +15 -0
- package/dist/components/data-entry/switch/components/switch.js +86 -0
- package/dist/components/data-entry/switch/switch.styles.js +14 -0
- package/dist/components/disclosure/accordion/accordion.context.js +20 -0
- package/dist/components/disclosure/accordion/accordion.styles.js +84 -0
- package/dist/components/disclosure/accordion/components/accordion-content.js +26 -0
- package/dist/components/disclosure/accordion/components/accordion-item.js +30 -0
- package/dist/components/disclosure/accordion/components/accordion-root.js +80 -0
- package/dist/components/disclosure/accordion/components/accordion-trigger.js +49 -0
- package/dist/components/disclosure/accordion/index.js +16 -0
- package/dist/components/disclosure/carousel/carousel.context.js +18 -0
- package/dist/components/disclosure/carousel/carousel.styles.js +77 -0
- package/dist/components/disclosure/carousel/components/carousel-autoplay-trigger.js +25 -0
- package/dist/components/disclosure/carousel/components/carousel-control.js +12 -0
- package/dist/components/disclosure/carousel/components/carousel-indicator.js +22 -0
- package/dist/components/disclosure/carousel/components/carousel-indicators.js +32 -0
- package/dist/components/disclosure/carousel/components/carousel-next.js +24 -0
- package/dist/components/disclosure/carousel/components/carousel-prev.js +24 -0
- package/dist/components/disclosure/carousel/components/carousel-progress-text.js +21 -0
- package/dist/components/disclosure/carousel/components/carousel-root.js +129 -0
- package/dist/components/disclosure/carousel/components/carousel-slide.js +49 -0
- package/dist/components/disclosure/carousel/components/carousel-track.js +74 -0
- package/dist/components/disclosure/carousel/index.js +34 -0
- package/dist/components/disclosure/pagination/components/pagination-controls.js +79 -0
- package/dist/components/disclosure/pagination/components/pagination-ellipsis.js +11 -0
- package/dist/components/disclosure/pagination/components/pagination-item.js +24 -0
- package/dist/components/disclosure/pagination/components/pagination-jumper.js +35 -0
- package/dist/components/disclosure/pagination/components/pagination-list.js +9 -0
- package/dist/components/disclosure/pagination/components/pagination-page-text.js +18 -0
- package/dist/components/disclosure/pagination/components/pagination-pages.js +24 -0
- package/dist/components/disclosure/pagination/components/pagination-root.js +44 -0
- package/dist/components/disclosure/pagination/index.js +34 -0
- package/dist/components/disclosure/pagination/pagination.context.js +12 -0
- package/dist/components/disclosure/pagination/pagination.styles.js +84 -0
- package/dist/components/feedback/alert/alert.js +55 -0
- package/dist/components/feedback/alert/alert.styles.js +23 -0
- package/dist/components/feedback/progress/progress.js +112 -0
- package/dist/components/feedback/progress/progress.styles.js +25 -0
- package/dist/components/feedback/skeleton/skeleton.js +27 -0
- package/dist/components/feedback/skeleton/skeleton.styles.js +20 -0
- package/dist/components/feedback/spinner/spinner.js +32 -0
- package/dist/components/feedback/spinner/spinner.styles.js +17 -0
- package/dist/components/feedback/status.js +18 -0
- package/dist/components/feedback/toast/toast-store.js +35 -0
- package/dist/components/feedback/toast/toast.styles.js +20 -0
- package/dist/components/feedback/toast/toaster.js +65 -0
- package/dist/components/icon/icon.js +47 -0
- package/dist/components/icon/icon.styles.js +20 -0
- package/dist/components/icon/internal-icons.js +143 -0
- package/dist/components/layout/aspect-ratio/aspect-ratio.js +32 -0
- package/dist/components/layout/aspect-ratio/aspect-ratio.styles.js +18 -0
- package/dist/components/layout/box/box.js +30 -0
- package/dist/components/layout/box/box.styles.js +76 -0
- package/dist/components/layout/center/center.js +31 -0
- package/dist/components/layout/container/container.js +40 -0
- package/dist/components/layout/flex/flex-item.js +35 -0
- package/dist/components/layout/flex/flex.js +32 -0
- package/dist/components/layout/flex/flex.style.js +42 -0
- package/dist/components/layout/flex/index.js +11 -0
- package/dist/components/layout/float/float.js +32 -0
- package/dist/components/layout/float/float.styles.js +29 -0
- package/dist/components/layout/grid/grid-item.js +36 -0
- package/dist/components/layout/grid/grid.js +47 -0
- package/dist/components/layout/grid/grid.styles.js +43 -0
- package/dist/components/layout/grid/index.js +10 -0
- package/dist/components/layout/separator/separator.js +33 -0
- package/dist/components/layout/separator/separator.styles.js +29 -0
- package/dist/components/layout/stack/stack.js +24 -0
- package/dist/components/menu/components/menu-content.js +62 -0
- package/dist/components/menu/components/menu-parts.js +81 -0
- package/dist/components/menu/components/menu-root.js +36 -0
- package/dist/components/menu/index.js +15 -0
- package/dist/components/menu/menu.context.js +12 -0
- package/dist/components/menu/menu.styles.js +12 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.js +50 -0
- package/dist/components/navigation/steps/components/steps-completed.js +12 -0
- package/dist/components/navigation/steps/components/steps-content.js +12 -0
- package/dist/components/navigation/steps/components/steps-description.js +13 -0
- package/dist/components/navigation/steps/components/steps-indicator.js +34 -0
- package/dist/components/navigation/steps/components/steps-item.js +112 -0
- package/dist/components/navigation/steps/components/steps-list.js +21 -0
- package/dist/components/navigation/steps/components/steps-next.js +25 -0
- package/dist/components/navigation/steps/components/steps-prev.js +25 -0
- package/dist/components/navigation/steps/components/steps-root.js +61 -0
- package/dist/components/navigation/steps/components/steps-title.js +13 -0
- package/dist/components/navigation/steps/index.js +34 -0
- package/dist/components/navigation/steps/steps.context.js +20 -0
- package/dist/components/navigation/steps/steps.styles.js +97 -0
- package/dist/components/navigation/tabs/components/tabs-content.js +26 -0
- package/dist/components/navigation/tabs/components/tabs-list.js +45 -0
- package/dist/components/navigation/tabs/components/tabs-root.js +54 -0
- package/dist/components/navigation/tabs/components/tabs-trigger.js +54 -0
- package/dist/components/navigation/tabs/index.js +16 -0
- package/dist/components/navigation/tabs/tabs.context.js +12 -0
- package/dist/components/navigation/tabs/tabs.styles.js +80 -0
- package/dist/components/overlay/drawer/components/drawer-content.js +48 -0
- package/dist/components/overlay/drawer/components/drawer-parts.js +48 -0
- package/dist/components/overlay/drawer/components/drawer-root.js +58 -0
- package/dist/components/overlay/drawer/drawer.context.js +12 -0
- package/dist/components/overlay/drawer/drawer.styles.js +32 -0
- package/dist/components/overlay/drawer/index.js +27 -0
- package/dist/components/overlay/modal/components/modal-content.js +48 -0
- package/dist/components/overlay/modal/components/modal-parts.js +48 -0
- package/dist/components/overlay/modal/components/modal-root.js +58 -0
- package/dist/components/overlay/modal/index.js +27 -0
- package/dist/components/overlay/modal/modal.context.js +12 -0
- package/dist/components/overlay/modal/modal.styles.js +31 -0
- package/dist/components/overlay/popover/components/popover-content.js +76 -0
- package/dist/components/overlay/popover/components/popover-parts.js +17 -0
- package/dist/components/overlay/popover/components/popover-root.js +71 -0
- package/dist/components/overlay/popover/index.js +19 -0
- package/dist/components/overlay/popover/popover.context.js +12 -0
- package/dist/components/overlay/popover/popover.styles.js +6 -0
- package/dist/components/overlay/portal.js +10 -0
- package/dist/components/overlay/tooltip/components/tooltip-content.js +52 -0
- package/dist/components/overlay/tooltip/components/tooltip-root.js +53 -0
- package/dist/components/overlay/tooltip/index.js +12 -0
- package/dist/components/overlay/tooltip/tooltip.context.js +12 -0
- package/dist/components/overlay/tooltip/tooltip.styles.js +6 -0
- package/dist/components/typography/blockquote/blockquote.js +39 -0
- package/dist/components/typography/blockquote/blockquote.styles.js +21 -0
- package/dist/components/typography/code/code.js +35 -0
- package/dist/components/typography/code/code.styles.js +26 -0
- package/dist/components/typography/code-block/code-block.js +57 -0
- package/dist/components/typography/code-block/code-block.styles.js +36 -0
- package/dist/components/typography/heading/heading.js +21 -0
- package/dist/components/typography/highlight/highlight.js +30 -0
- package/dist/components/typography/highlight/highlight.styles.js +18 -0
- package/dist/components/typography/kbd/kbd.js +26 -0
- package/dist/components/typography/link/link.js +48 -0
- package/dist/components/typography/list/index.js +10 -0
- package/dist/components/typography/list/list-item.js +37 -0
- package/dist/components/typography/list/list.js +35 -0
- package/dist/components/typography/list/list.styles.js +35 -0
- package/dist/components/typography/text/text.js +80 -0
- package/dist/components/typography/text/text.styles.js +110 -0
- package/dist/const/color-mappings.js +541 -0
- package/dist/const/color-schemes.js +5 -0
- package/dist/const/common-mappings.js +127 -0
- package/dist/const/layout-mappings.js +446 -0
- package/dist/const/positioning-mappings.js +164 -0
- package/dist/const/rounded-mappings.js +121 -0
- package/dist/const/sizing-mappings.js +1113 -0
- package/dist/const/spacing-mappings.js +508 -0
- package/dist/hooks/use-anchor-position.js +39 -0
- package/dist/hooks/use-controllable-state.js +18 -0
- package/dist/hooks/use-dismiss.js +23 -0
- package/dist/hooks/use-overlay-behavior.js +42 -0
- package/dist/hooks/use-prefers-reduced-motion.js +15 -0
- package/dist/hooks/use-presence.js +18 -0
- package/dist/hooks/use-roving-focus.js +51 -0
- package/dist/index.d.ts +3533 -0
- package/dist/index.js +359 -0
- package/dist/styles.css +2 -0
- package/dist/theme/provider.js +130 -0
- package/dist/utils/astralis-merge.js +31 -0
- package/dist/utils/overlay-stack.js +27 -0
- package/dist/utils/responsive.js +32 -0
- package/dist/utils/split-variant-props.js +13 -0
- package/package.json +107 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as x } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as I } from "react";
|
|
4
|
+
import { astralisMerge as V } from "../../../utils/astralis-merge.js";
|
|
5
|
+
import { resolveStyleProps as i } from "../../../utils/responsive.js";
|
|
6
|
+
import { flexItemVariantMap as m, flexItemVariants as d } from "./flex.style.js";
|
|
7
|
+
import { boxVariantMap as u, boxVariants as v } from "../box/box.styles.js";
|
|
8
|
+
import { BOX_VARIANT_KEYS as y } from "../box/box.js";
|
|
9
|
+
const b = Object.keys(m), P = I(
|
|
10
|
+
({ children: n, as: l, className: f, ...e }, p) => {
|
|
11
|
+
const c = l || "div", o = {}, a = {}, s = {};
|
|
12
|
+
for (const t in e)
|
|
13
|
+
if (Object.prototype.hasOwnProperty.call(e, t)) {
|
|
14
|
+
const r = e[t];
|
|
15
|
+
b.includes(t) ? o[t] = r : y.includes(t) ? a[t] = r : s[t] = r;
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ x(
|
|
18
|
+
c,
|
|
19
|
+
{
|
|
20
|
+
className: V(
|
|
21
|
+
i(a, { maps: u, variants: v }),
|
|
22
|
+
i(o, { maps: m, variants: d }),
|
|
23
|
+
f
|
|
24
|
+
),
|
|
25
|
+
ref: p,
|
|
26
|
+
...s,
|
|
27
|
+
children: n
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
P.displayName = "Flex.Item";
|
|
33
|
+
export {
|
|
34
|
+
P as default
|
|
35
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as x } from "react";
|
|
4
|
+
import { astralisMerge as V } from "../../../utils/astralis-merge.js";
|
|
5
|
+
import { resolveStyleProps as s } from "../../../utils/responsive.js";
|
|
6
|
+
import { flexVariantMap as i, flexVariants as d } from "./flex.style.js";
|
|
7
|
+
import { boxVariantMap as y, boxVariants as b } from "../box/box.styles.js";
|
|
8
|
+
import { BOX_VARIANT_KEYS as u } from "../box/box.js";
|
|
9
|
+
const v = Object.keys(i), P = x(
|
|
10
|
+
({ children: n, as: m, className: l, ...r }, f) => {
|
|
11
|
+
const c = m || "div", o = {}, a = {}, e = {};
|
|
12
|
+
for (const t in r)
|
|
13
|
+
Object.prototype.hasOwnProperty.call(r, t) && (v.includes(t) ? o[t] = r[t] : u.includes(t) ? a[t] = r[t] : e[t] = r[t]);
|
|
14
|
+
return /* @__PURE__ */ p(
|
|
15
|
+
c,
|
|
16
|
+
{
|
|
17
|
+
className: V(
|
|
18
|
+
s(a, { maps: y, variants: b }),
|
|
19
|
+
s(o, { maps: i, variants: d }),
|
|
20
|
+
l
|
|
21
|
+
),
|
|
22
|
+
ref: f,
|
|
23
|
+
...e,
|
|
24
|
+
children: n
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
P.displayName = "Flex";
|
|
30
|
+
export {
|
|
31
|
+
P as default
|
|
32
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cva as e } from "class-variance-authority";
|
|
3
|
+
import { columnGapTypes as t, rowGapTypes as a, gapTypes as n, flexWrapTypes as s, placeContentTypes as r, alignContentTypes as p, alignItemsTypes as i, justifyContentTypes as o, flexDirectionTypes as l, alignSelfTypes as f, orderTypes as y, flexShrinkTypes as T, flexGrowTypes as c, flexTypes as x, flexBasisTypes as m } from "../../../const/layout-mappings.js";
|
|
4
|
+
const g = {
|
|
5
|
+
direction: l,
|
|
6
|
+
// Container alignment valid in flexbox: justify-content (main axis),
|
|
7
|
+
// align-items (cross axis), align-content (wrapped lines), place-content
|
|
8
|
+
// (shorthand of the two). justify-items / place-items are NO-OPs in flex.
|
|
9
|
+
justifyContent: o,
|
|
10
|
+
alignItems: i,
|
|
11
|
+
alignContent: p,
|
|
12
|
+
placeContent: r,
|
|
13
|
+
wrap: s,
|
|
14
|
+
gap: n,
|
|
15
|
+
rowGap: a,
|
|
16
|
+
columnGap: t
|
|
17
|
+
}, d = e("astralis:flex", {
|
|
18
|
+
variants: g,
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
direction: "row",
|
|
21
|
+
alignItems: "start",
|
|
22
|
+
justifyContent: "start",
|
|
23
|
+
wrap: "nowrap"
|
|
24
|
+
}
|
|
25
|
+
}), w = {
|
|
26
|
+
basis: m,
|
|
27
|
+
flex: x,
|
|
28
|
+
grow: c,
|
|
29
|
+
shrink: T,
|
|
30
|
+
order: y,
|
|
31
|
+
// Only align-self has effect on a flex item; justify-self / place-self are
|
|
32
|
+
// NO-OPs in flex (main-axis positioning is done via margins / justify-content).
|
|
33
|
+
alignSelf: f
|
|
34
|
+
}, G = e("", {
|
|
35
|
+
variants: w
|
|
36
|
+
});
|
|
37
|
+
export {
|
|
38
|
+
w as flexItemVariantMap,
|
|
39
|
+
G as flexItemVariants,
|
|
40
|
+
g as flexVariantMap,
|
|
41
|
+
d as flexVariants
|
|
42
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as V } from "react";
|
|
4
|
+
import { astralisMerge as d } from "../../../utils/astralis-merge.js";
|
|
5
|
+
import { resolveStyleProps as e } from "../../../utils/responsive.js";
|
|
6
|
+
import { floatVariantMap as i, floatVariants as y } from "./float.styles.js";
|
|
7
|
+
import { boxVariantMap as b, boxVariants as u } from "../box/box.styles.js";
|
|
8
|
+
import { BOX_VARIANT_KEYS as v } from "../box/box.js";
|
|
9
|
+
const x = Object.keys(i), P = V(
|
|
10
|
+
({ children: n, as: m, className: l, ...a }, f) => {
|
|
11
|
+
const c = m || "div", o = {}, r = {}, s = {};
|
|
12
|
+
for (const t in a)
|
|
13
|
+
Object.prototype.hasOwnProperty.call(a, t) && (x.includes(t) ? o[t] = a[t] : v.includes(t) ? r[t] = a[t] : s[t] = a[t]);
|
|
14
|
+
return /* @__PURE__ */ p(
|
|
15
|
+
c,
|
|
16
|
+
{
|
|
17
|
+
className: d(
|
|
18
|
+
e(r, { maps: b, variants: u }),
|
|
19
|
+
e(o, { maps: i, variants: y }),
|
|
20
|
+
l
|
|
21
|
+
),
|
|
22
|
+
ref: f,
|
|
23
|
+
...s,
|
|
24
|
+
children: n
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
P.displayName = "Float";
|
|
30
|
+
export {
|
|
31
|
+
P as default
|
|
32
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cva as t } from "class-variance-authority";
|
|
3
|
+
const a = {
|
|
4
|
+
placement: {
|
|
5
|
+
// Every placement declares ALL FOUR insets (auto for the unused sides).
|
|
6
|
+
// Responsive overrides only ADD breakpoint classes on top of the base
|
|
7
|
+
// value's classes, so without the auto-counters a base `top-start`
|
|
8
|
+
// overridden to `md:bottom-end` would keep top-0/left-0 pinned as well.
|
|
9
|
+
"top-start": "astralis:top-0 astralis:bottom-auto astralis:left-0 astralis:right-auto astralis:-translate-x-1/2 astralis:-translate-y-1/2",
|
|
10
|
+
"top-center": "astralis:top-0 astralis:bottom-auto astralis:left-1/2 astralis:right-auto astralis:-translate-x-1/2 astralis:-translate-y-1/2",
|
|
11
|
+
"top-end": "astralis:top-0 astralis:bottom-auto astralis:right-0 astralis:left-auto astralis:translate-x-1/2 astralis:-translate-y-1/2",
|
|
12
|
+
"middle-start": "astralis:top-1/2 astralis:bottom-auto astralis:left-0 astralis:right-auto astralis:-translate-x-1/2 astralis:-translate-y-1/2",
|
|
13
|
+
"middle-center": "astralis:top-1/2 astralis:bottom-auto astralis:left-1/2 astralis:right-auto astralis:-translate-x-1/2 astralis:-translate-y-1/2",
|
|
14
|
+
"middle-end": "astralis:top-1/2 astralis:bottom-auto astralis:right-0 astralis:left-auto astralis:translate-x-1/2 astralis:-translate-y-1/2",
|
|
15
|
+
"bottom-start": "astralis:bottom-0 astralis:top-auto astralis:left-0 astralis:right-auto astralis:-translate-x-1/2 astralis:translate-y-1/2",
|
|
16
|
+
"bottom-center": "astralis:bottom-0 astralis:top-auto astralis:left-1/2 astralis:right-auto astralis:-translate-x-1/2 astralis:translate-y-1/2",
|
|
17
|
+
"bottom-end": "astralis:bottom-0 astralis:top-auto astralis:right-0 astralis:left-auto astralis:translate-x-1/2 astralis:translate-y-1/2"
|
|
18
|
+
}
|
|
19
|
+
}, r = t(
|
|
20
|
+
"astralis:absolute astralis:z-lower astralis:inline-flex astralis:items-center astralis:justify-center",
|
|
21
|
+
{
|
|
22
|
+
variants: a,
|
|
23
|
+
defaultVariants: { placement: "top-end" }
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
export {
|
|
27
|
+
a as floatVariantMap,
|
|
28
|
+
r as floatVariants
|
|
29
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as V } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as u } from "react";
|
|
4
|
+
import { astralisMerge as v } from "../../../utils/astralis-merge.js";
|
|
5
|
+
import { resolveStyleProps as n } from "../../../utils/responsive.js";
|
|
6
|
+
import { gridItemVariantMap as l, gridItemVariants as y } from "./grid.styles.js";
|
|
7
|
+
import { boxVariantMap as b, boxVariants as x } from "../box/box.styles.js";
|
|
8
|
+
import { BOX_VARIANT_KEYS as A } from "../box/box.js";
|
|
9
|
+
const P = Object.keys(l), g = u(
|
|
10
|
+
({ children: p, as: c, className: f, area: e, style: a, ...t }, d) => {
|
|
11
|
+
const I = c || "div", s = {}, i = {}, m = {};
|
|
12
|
+
for (const r in t)
|
|
13
|
+
if (Object.prototype.hasOwnProperty.call(t, r)) {
|
|
14
|
+
const o = t[r];
|
|
15
|
+
P.includes(r) ? s[r] = o : A.includes(r) ? i[r] = o : m[r] = o;
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ V(
|
|
18
|
+
I,
|
|
19
|
+
{
|
|
20
|
+
className: v(
|
|
21
|
+
n(i, { maps: b, variants: x }),
|
|
22
|
+
n(s, { maps: l, variants: y }),
|
|
23
|
+
f
|
|
24
|
+
),
|
|
25
|
+
ref: d,
|
|
26
|
+
style: e ? { gridArea: e, ...a } : a,
|
|
27
|
+
...m,
|
|
28
|
+
children: p
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
g.displayName = "Grid.Item";
|
|
34
|
+
export {
|
|
35
|
+
g as default
|
|
36
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as v } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as b } from "react";
|
|
4
|
+
import { astralisMerge as x } from "../../../utils/astralis-merge.js";
|
|
5
|
+
import { resolveStyleProps as d } from "../../../utils/responsive.js";
|
|
6
|
+
import { gridVariantMap as f, gridVariants as P } from "./grid.styles.js";
|
|
7
|
+
import { boxVariantMap as T, boxVariants as u } from "../box/box.styles.js";
|
|
8
|
+
import { BOX_VARIANT_KEYS as N } from "../box/box.js";
|
|
9
|
+
const O = Object.keys(f), S = b(
|
|
10
|
+
({
|
|
11
|
+
children: l,
|
|
12
|
+
as: p,
|
|
13
|
+
className: y,
|
|
14
|
+
templateColumns: o,
|
|
15
|
+
templateRows: t,
|
|
16
|
+
templateAreas: a,
|
|
17
|
+
style: s,
|
|
18
|
+
...i
|
|
19
|
+
}, V) => {
|
|
20
|
+
const g = p || "div", e = {}, n = {}, m = {};
|
|
21
|
+
for (const r in i)
|
|
22
|
+
Object.prototype.hasOwnProperty.call(i, r) && (O.includes(r) ? e[r] = i[r] : N.includes(r) ? n[r] = i[r] : m[r] = i[r]);
|
|
23
|
+
const c = o || t || a ? {
|
|
24
|
+
...o ? { gridTemplateColumns: o } : {},
|
|
25
|
+
...t ? { gridTemplateRows: t } : {},
|
|
26
|
+
...a ? { gridTemplateAreas: a } : {}
|
|
27
|
+
} : void 0;
|
|
28
|
+
return /* @__PURE__ */ v(
|
|
29
|
+
g,
|
|
30
|
+
{
|
|
31
|
+
className: x(
|
|
32
|
+
d(n, { maps: T, variants: u }),
|
|
33
|
+
d(e, { maps: f, variants: P }),
|
|
34
|
+
y
|
|
35
|
+
),
|
|
36
|
+
ref: V,
|
|
37
|
+
style: c ? { ...c, ...s } : s,
|
|
38
|
+
...m,
|
|
39
|
+
children: l
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
S.displayName = "Grid";
|
|
45
|
+
export {
|
|
46
|
+
S as default
|
|
47
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cva as t } from "class-variance-authority";
|
|
3
|
+
import { columnGapTypes as e, rowGapTypes as s, gapTypes as a, placeItemsTypes as o, placeContentTypes as r, alignContentTypes as n, justifyContentTypes as p, alignItemsTypes as i, gridJustifyItemsTypes as l, gridAutoRowsTypes as y, gridAutoColumnsTypes as g, gridAutoFlow as d, gridTemplateRows as T, gridTemplateColumns as m, placeSelfTypes as u, justifySelfTypes as c, alignSelfTypes as f, orderTypes as w, gridRowEndTypes as S, gridRowStartTypes as C, gridRowSpanTypes as I, gridColEndTypes as R, gridColStartTypes as j, gridColSpanTypes as V } from "../../../const/layout-mappings.js";
|
|
4
|
+
const E = {
|
|
5
|
+
columns: m,
|
|
6
|
+
rows: T,
|
|
7
|
+
flow: d,
|
|
8
|
+
autoColumns: g,
|
|
9
|
+
autoRows: y,
|
|
10
|
+
justifyItems: l,
|
|
11
|
+
alignItems: i,
|
|
12
|
+
justifyContent: p,
|
|
13
|
+
alignContent: n,
|
|
14
|
+
placeContent: r,
|
|
15
|
+
placeItems: o,
|
|
16
|
+
gap: a,
|
|
17
|
+
rowGap: s,
|
|
18
|
+
columnGap: e
|
|
19
|
+
}, M = t("astralis:grid", {
|
|
20
|
+
variants: E,
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
flow: "row"
|
|
23
|
+
}
|
|
24
|
+
}), G = {
|
|
25
|
+
colSpan: V,
|
|
26
|
+
colStart: j,
|
|
27
|
+
colEnd: R,
|
|
28
|
+
rowSpan: I,
|
|
29
|
+
rowStart: C,
|
|
30
|
+
rowEnd: S,
|
|
31
|
+
order: w,
|
|
32
|
+
alignSelf: f,
|
|
33
|
+
justifySelf: c,
|
|
34
|
+
placeSelf: u
|
|
35
|
+
}, x = t("", {
|
|
36
|
+
variants: G
|
|
37
|
+
});
|
|
38
|
+
export {
|
|
39
|
+
G as gridItemVariantMap,
|
|
40
|
+
x as gridItemVariants,
|
|
41
|
+
E as gridVariantMap,
|
|
42
|
+
M as gridVariants
|
|
43
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as y } from "react";
|
|
4
|
+
import { astralisMerge as V } from "../../../utils/astralis-merge.js";
|
|
5
|
+
import { resolveStyleProps as n } from "../../../utils/responsive.js";
|
|
6
|
+
import { separatorVariantMap as s, separatorVariants as v } from "./separator.styles.js";
|
|
7
|
+
import { boxVariantMap as b, boxVariants as u } from "../box/box.styles.js";
|
|
8
|
+
import { BOX_VARIANT_KEYS as x } from "../box/box.js";
|
|
9
|
+
const O = Object.keys(s), P = y(
|
|
10
|
+
({ as: m, className: l, ...r }, c) => {
|
|
11
|
+
const p = m || "div", a = r.orientation ?? "horizontal", f = typeof a == "string" ? a : void 0, o = {}, e = {}, i = {};
|
|
12
|
+
for (const t in r)
|
|
13
|
+
Object.prototype.hasOwnProperty.call(r, t) && (O.includes(t) ? o[t] = r[t] : x.includes(t) ? e[t] = r[t] : i[t] = r[t]);
|
|
14
|
+
return /* @__PURE__ */ d(
|
|
15
|
+
p,
|
|
16
|
+
{
|
|
17
|
+
role: "separator",
|
|
18
|
+
"aria-orientation": f,
|
|
19
|
+
className: V(
|
|
20
|
+
n(o, { maps: s, variants: v }),
|
|
21
|
+
n(e, { maps: b, variants: u }),
|
|
22
|
+
l
|
|
23
|
+
),
|
|
24
|
+
ref: c,
|
|
25
|
+
...i
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
P.displayName = "Separator";
|
|
31
|
+
export {
|
|
32
|
+
P as default
|
|
33
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cva as a } from "class-variance-authority";
|
|
3
|
+
const r = {
|
|
4
|
+
orientation: {
|
|
5
|
+
// Each value RESETS the other orientation's properties. Responsive
|
|
6
|
+
// overrides only ADD breakpoint classes — the base value's classes stay
|
|
7
|
+
// applied — so without the explicit zero/auto counters, a
|
|
8
|
+
// `{ base: "horizontal", md: "vertical" }` separator at md would keep the
|
|
9
|
+
// base's top border and full width on top of the vertical styles.
|
|
10
|
+
horizontal: "astralis:w-full astralis:h-auto astralis:border-t astralis:border-l-0",
|
|
11
|
+
vertical: "astralis:w-auto astralis:h-full astralis:self-stretch astralis:border-l astralis:border-t-0"
|
|
12
|
+
},
|
|
13
|
+
variant: {
|
|
14
|
+
solid: "astralis:border-solid",
|
|
15
|
+
dashed: "astralis:border-dashed",
|
|
16
|
+
dotted: "astralis:border-dotted"
|
|
17
|
+
}
|
|
18
|
+
}, s = a(
|
|
19
|
+
// Default colour comes from the muted stroke token; overridable via `borderColor`.
|
|
20
|
+
"astralis:border-stroke-muted astralis:shrink-0",
|
|
21
|
+
{
|
|
22
|
+
variants: r,
|
|
23
|
+
defaultVariants: { orientation: "horizontal", variant: "solid" }
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
export {
|
|
27
|
+
r as separatorVariantMap,
|
|
28
|
+
s as separatorVariants
|
|
29
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as r } from "react";
|
|
4
|
+
import { Flex as l } from "../flex/index.js";
|
|
5
|
+
const c = r(({ direction: t = "vertical", as: e, children: o, ...a }, n) => /* @__PURE__ */ i(
|
|
6
|
+
l,
|
|
7
|
+
{
|
|
8
|
+
ref: n,
|
|
9
|
+
as: e,
|
|
10
|
+
direction: t === "vertical" ? "column" : "row",
|
|
11
|
+
...a,
|
|
12
|
+
children: o
|
|
13
|
+
}
|
|
14
|
+
));
|
|
15
|
+
c.displayName = "Stack";
|
|
16
|
+
const m = r((t, e) => /* @__PURE__ */ i(c, { ref: e, alignItems: "center", ...t, direction: "horizontal" }));
|
|
17
|
+
m.displayName = "HStack";
|
|
18
|
+
const s = r((t, e) => /* @__PURE__ */ i(c, { ref: e, ...t, direction: "vertical" }));
|
|
19
|
+
s.displayName = "VStack";
|
|
20
|
+
export {
|
|
21
|
+
m as HStack,
|
|
22
|
+
s as VStack,
|
|
23
|
+
c as default
|
|
24
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo as h, useEffect as x } from "react";
|
|
4
|
+
import { Portal as T } from "../../overlay/portal.js";
|
|
5
|
+
import { useMenu as I } from "../menu.context.js";
|
|
6
|
+
import { astralisMerge as N } from "../../../utils/astralis-merge.js";
|
|
7
|
+
import { usePresence as P } from "../../../hooks/use-presence.js";
|
|
8
|
+
import { useAnchorPosition as b } from "../../../hooks/use-anchor-position.js";
|
|
9
|
+
import { useDismiss as w } from "../../../hooks/use-dismiss.js";
|
|
10
|
+
import { useRovingFocus as A } from "../../../hooks/use-roving-focus.js";
|
|
11
|
+
import { menuMotionClasses as F, menuContentClasses as K } from "../menu.styles.js";
|
|
12
|
+
const a = 160;
|
|
13
|
+
function O({ className: u = "", children: f, onKeyDown: c, ...l }) {
|
|
14
|
+
const { open: t, close: i, triggerRef: o, contentRef: r, contentId: d, side: p, align: R, sideOffset: g } = I(), { mounted: s, state: y } = P(t, a), { x: v, y: M, side: C } = b({
|
|
15
|
+
open: s,
|
|
16
|
+
anchorRef: o,
|
|
17
|
+
floatingRef: r,
|
|
18
|
+
side: p,
|
|
19
|
+
align: R,
|
|
20
|
+
sideOffset: g
|
|
21
|
+
}), D = h(() => [o, r], [o, r]);
|
|
22
|
+
w(t, i, { refs: D });
|
|
23
|
+
const n = A({
|
|
24
|
+
itemSelector: "[data-astralis-menu-item]",
|
|
25
|
+
orientation: "vertical",
|
|
26
|
+
typeahead: !0
|
|
27
|
+
});
|
|
28
|
+
return x(() => {
|
|
29
|
+
if (!t) return;
|
|
30
|
+
const e = setTimeout(() => n.focusFirst(), 0);
|
|
31
|
+
return () => {
|
|
32
|
+
clearTimeout(e), o.current?.focus();
|
|
33
|
+
};
|
|
34
|
+
}, [t]), s ? /* @__PURE__ */ m(T, { children: /* @__PURE__ */ m(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
ref: (e) => {
|
|
38
|
+
r.current = e, n.containerRef.current = e;
|
|
39
|
+
},
|
|
40
|
+
id: d,
|
|
41
|
+
role: "menu",
|
|
42
|
+
"aria-orientation": "vertical",
|
|
43
|
+
tabIndex: -1,
|
|
44
|
+
"data-side": C,
|
|
45
|
+
style: { left: v, top: M, transitionDuration: `${a}ms` },
|
|
46
|
+
onKeyDown: (e) => {
|
|
47
|
+
if (c?.(e), e.key === "Tab") {
|
|
48
|
+
i();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
n.onKeyDown(e);
|
|
52
|
+
},
|
|
53
|
+
className: N(K, F(y), u),
|
|
54
|
+
...l,
|
|
55
|
+
children: f
|
|
56
|
+
}
|
|
57
|
+
) }) : null;
|
|
58
|
+
}
|
|
59
|
+
O.displayName = "Menu.Content";
|
|
60
|
+
export {
|
|
61
|
+
O as MenuContent
|
|
62
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as o, jsxs as g } from "react/jsx-runtime";
|
|
3
|
+
import { cloneElement as y } from "react";
|
|
4
|
+
import { useMenu as p } from "../menu.context.js";
|
|
5
|
+
import { astralisMerge as u } from "../../../utils/astralis-merge.js";
|
|
6
|
+
import { menuSeparatorClasses as N, menuLabelClasses as v, menuIconSlotClasses as C, menuShortcutClasses as h, menuItemDangerClasses as k, menuItemClasses as D } from "../menu.styles.js";
|
|
7
|
+
function I({ children: n }) {
|
|
8
|
+
const { toggle: e, open: a, triggerRef: i, contentId: l } = p(), s = n;
|
|
9
|
+
return y(s, {
|
|
10
|
+
ref: i,
|
|
11
|
+
onClick: (r) => {
|
|
12
|
+
s.props.onClick?.(r), e();
|
|
13
|
+
},
|
|
14
|
+
// ArrowDown on a closed trigger opens the menu (APG menu-button pattern).
|
|
15
|
+
onKeyDown: (r) => {
|
|
16
|
+
s.props.onKeyDown?.(r), !a && (r.key === "ArrowDown" || r.key === "ArrowUp") && (r.preventDefault(), e());
|
|
17
|
+
},
|
|
18
|
+
"aria-haspopup": "menu",
|
|
19
|
+
"aria-expanded": a,
|
|
20
|
+
"aria-controls": a ? l : void 0
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
I.displayName = "Menu.Trigger";
|
|
24
|
+
function w({
|
|
25
|
+
onSelect: n,
|
|
26
|
+
disabled: e = !1,
|
|
27
|
+
danger: a = !1,
|
|
28
|
+
icon: i,
|
|
29
|
+
shortcut: l,
|
|
30
|
+
closeOnSelect: s,
|
|
31
|
+
className: r = "",
|
|
32
|
+
children: f,
|
|
33
|
+
...d
|
|
34
|
+
}) {
|
|
35
|
+
const m = p(), M = s ?? m.closeOnSelect, c = () => {
|
|
36
|
+
e || (n?.(), M && m.close());
|
|
37
|
+
};
|
|
38
|
+
return /* @__PURE__ */ g(
|
|
39
|
+
"div",
|
|
40
|
+
{
|
|
41
|
+
role: "menuitem",
|
|
42
|
+
tabIndex: -1,
|
|
43
|
+
"aria-disabled": e || void 0,
|
|
44
|
+
"data-astralis-menu-item": "",
|
|
45
|
+
onClick: c,
|
|
46
|
+
onKeyDown: (t) => {
|
|
47
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), c());
|
|
48
|
+
},
|
|
49
|
+
onPointerMove: (t) => {
|
|
50
|
+
e || t.currentTarget.focus();
|
|
51
|
+
},
|
|
52
|
+
className: u(D, a && k, r),
|
|
53
|
+
...d,
|
|
54
|
+
children: [
|
|
55
|
+
i && /* @__PURE__ */ o("span", { "aria-hidden": "true", className: C, children: i }),
|
|
56
|
+
/* @__PURE__ */ o("span", { className: "astralis:flex-1 astralis:truncate", children: f }),
|
|
57
|
+
l && /* @__PURE__ */ o("span", { className: h, children: l })
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
w.displayName = "Menu.Item";
|
|
63
|
+
function x({ className: n = "", children: e, ...a }) {
|
|
64
|
+
return /* @__PURE__ */ o("div", { className: u(v, n), ...a, children: e });
|
|
65
|
+
}
|
|
66
|
+
x.displayName = "Menu.Label";
|
|
67
|
+
function S({ className: n = "", ...e }) {
|
|
68
|
+
return /* @__PURE__ */ o("div", { role: "separator", "aria-orientation": "horizontal", className: u(N, n), ...e });
|
|
69
|
+
}
|
|
70
|
+
S.displayName = "Menu.Separator";
|
|
71
|
+
function b({ className: n = "", children: e, ...a }) {
|
|
72
|
+
return /* @__PURE__ */ o("div", { role: "group", className: n || void 0, ...a, children: e });
|
|
73
|
+
}
|
|
74
|
+
b.displayName = "Menu.Group";
|
|
75
|
+
export {
|
|
76
|
+
b as MenuGroup,
|
|
77
|
+
w as MenuItem,
|
|
78
|
+
x as MenuLabel,
|
|
79
|
+
S as MenuSeparator,
|
|
80
|
+
I as MenuTrigger
|
|
81
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as b } from "react/jsx-runtime";
|
|
3
|
+
import { useId as d, useRef as a, useCallback as m, useMemo as v } from "react";
|
|
4
|
+
import { MenuContext as M } from "../menu.context.js";
|
|
5
|
+
import { useControllableState as I } from "../../../hooks/use-controllable-state.js";
|
|
6
|
+
function V({
|
|
7
|
+
children: f,
|
|
8
|
+
open: p,
|
|
9
|
+
defaultOpen: i = !1,
|
|
10
|
+
onOpenChange: g,
|
|
11
|
+
side: e = "bottom",
|
|
12
|
+
align: n = "start",
|
|
13
|
+
sideOffset: r = 6,
|
|
14
|
+
closeOnSelect: u = !0
|
|
15
|
+
}) {
|
|
16
|
+
const [o, t] = I({ value: p, defaultValue: i, onChange: g }), l = d(), x = a(null), C = a(null), s = m(() => t(!1), [t]), c = m(() => t(!o), [t, o]), R = v(
|
|
17
|
+
() => ({
|
|
18
|
+
open: o,
|
|
19
|
+
setOpen: t,
|
|
20
|
+
toggle: c,
|
|
21
|
+
close: s,
|
|
22
|
+
triggerRef: x,
|
|
23
|
+
contentRef: C,
|
|
24
|
+
contentId: `${l}-menu`,
|
|
25
|
+
side: e,
|
|
26
|
+
align: n,
|
|
27
|
+
sideOffset: r,
|
|
28
|
+
closeOnSelect: u
|
|
29
|
+
}),
|
|
30
|
+
[o, t, c, s, l, e, n, r, u]
|
|
31
|
+
);
|
|
32
|
+
return /* @__PURE__ */ b(M.Provider, { value: R, children: f });
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
V as MenuRoot
|
|
36
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { MenuRoot as e } from "./components/menu-root.js";
|
|
3
|
+
import { MenuContent as r } from "./components/menu-content.js";
|
|
4
|
+
import { MenuGroup as o, MenuSeparator as t, MenuLabel as n, MenuItem as u, MenuTrigger as m } from "./components/menu-parts.js";
|
|
5
|
+
const i = Object.assign(e, {
|
|
6
|
+
Trigger: m,
|
|
7
|
+
Content: r,
|
|
8
|
+
Item: u,
|
|
9
|
+
Label: n,
|
|
10
|
+
Separator: t,
|
|
11
|
+
Group: o
|
|
12
|
+
});
|
|
13
|
+
export {
|
|
14
|
+
i as Menu
|
|
15
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext as t, useContext as n } from "react";
|
|
3
|
+
const o = t(null);
|
|
4
|
+
function r() {
|
|
5
|
+
const e = n(o);
|
|
6
|
+
if (!e) throw new Error("Menu sub-components must be used within <Menu>");
|
|
7
|
+
return e;
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
o as MenuContext,
|
|
11
|
+
r as useMenu
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const a = "astralis:fixed astralis:z-higher astralis:min-w-44 astralis:max-w-72 astralis:rounded-xl astralis:border-normal astralis:border-stroke-subtle astralis:bg-surface-panel astralis:shadow-lg astralis:p-1 astralis:outline-none astralis:transition-all astralis:duration-fast", t = (s) => s === "open" ? "astralis:opacity-100 astralis:scale-100" : "astralis:opacity-0 astralis:scale-95", l = "astralis:flex astralis:w-full astralis:cursor-pointer astralis:select-none astralis:items-center astralis:gap-2 astralis:rounded-lg astralis:px-2.5 astralis:py-1.5 astralis:text-sm astralis:text-label-base astralis:outline-none astralis:transition-colors astralis:focus:bg-surface-subtle astralis:aria-disabled:opacity-moderate astralis:aria-disabled:pointer-events-none", r = "astralis:text-label-error astralis:focus:bg-surface-error", e = "astralis:px-2.5 astralis:py-1.5 astralis:text-xs astralis:font-medium astralis:text-label-subtle", i = "astralis:my-1 astralis:h-px astralis:bg-stroke-subtle", n = "astralis:h-4 astralis:w-4 astralis:shrink-0 astralis:text-label-muted", o = "astralis:ml-auto astralis:pl-4 astralis:text-xs astralis:text-label-subtle";
|
|
3
|
+
export {
|
|
4
|
+
a as menuContentClasses,
|
|
5
|
+
n as menuIconSlotClasses,
|
|
6
|
+
l as menuItemClasses,
|
|
7
|
+
r as menuItemDangerClasses,
|
|
8
|
+
e as menuLabelClasses,
|
|
9
|
+
t as menuMotionClasses,
|
|
10
|
+
i as menuSeparatorClasses,
|
|
11
|
+
o as menuShortcutClasses
|
|
12
|
+
};
|