@linyao.tw/ui 0.0.0-snapshot.07df57

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 (169) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +85 -0
  3. package/dist/components/date-time/calendar.d.ts +20 -0
  4. package/dist/components/date-time/calendar.js +102 -0
  5. package/dist/components/date-time/calendar.js.map +1 -0
  6. package/dist/components/date-time/date-field.d.ts +11 -0
  7. package/dist/components/date-time/date-field.js +44 -0
  8. package/dist/components/date-time/date-field.js.map +1 -0
  9. package/dist/components/date-time/date-picker.d.ts +28 -0
  10. package/dist/components/date-time/date-picker.js +74 -0
  11. package/dist/components/date-time/date-picker.js.map +1 -0
  12. package/dist/components/date-time/date-range-picker.d.ts +11 -0
  13. package/dist/components/date-time/date-range-picker.js +79 -0
  14. package/dist/components/date-time/date-range-picker.js.map +1 -0
  15. package/dist/components/date-time/date-types.d.ts +110 -0
  16. package/dist/components/date-time/index.d.ts +8 -0
  17. package/dist/components/date-time/index.js +8 -0
  18. package/dist/components/date-time/shared.d.ts +25 -0
  19. package/dist/components/date-time/shared.js +53 -0
  20. package/dist/components/date-time/shared.js.map +1 -0
  21. package/dist/components/date-time/time-field.d.ts +13 -0
  22. package/dist/components/date-time/time-field.js +52 -0
  23. package/dist/components/date-time/time-field.js.map +1 -0
  24. package/dist/components/feedback/alert.d.ts +21 -0
  25. package/dist/components/feedback/alert.js +44 -0
  26. package/dist/components/feedback/alert.js.map +1 -0
  27. package/dist/components/feedback/banner.d.ts +8 -0
  28. package/dist/components/feedback/banner.js +20 -0
  29. package/dist/components/feedback/banner.js.map +1 -0
  30. package/dist/components/feedback/empty-state.d.ts +12 -0
  31. package/dist/components/feedback/empty-state.js +48 -0
  32. package/dist/components/feedback/empty-state.js.map +1 -0
  33. package/dist/components/feedback/feedback.module.js +42 -0
  34. package/dist/components/feedback/feedback.module.js.map +1 -0
  35. package/dist/components/feedback/feedback.types.d.ts +8 -0
  36. package/dist/components/feedback/feedback.types.js +24 -0
  37. package/dist/components/feedback/feedback.types.js.map +1 -0
  38. package/dist/components/feedback/index.d.ts +9 -0
  39. package/dist/components/feedback/meter.d.ts +12 -0
  40. package/dist/components/feedback/meter.js +28 -0
  41. package/dist/components/feedback/meter.js.map +1 -0
  42. package/dist/components/feedback/progress.d.ts +12 -0
  43. package/dist/components/feedback/progress.js +28 -0
  44. package/dist/components/feedback/progress.js.map +1 -0
  45. package/dist/components/feedback/skeleton.d.ts +5 -0
  46. package/dist/components/feedback/skeleton.js +18 -0
  47. package/dist/components/feedback/skeleton.js.map +1 -0
  48. package/dist/components/feedback/spinner.d.ts +23 -0
  49. package/dist/components/feedback/spinner.js +35 -0
  50. package/dist/components/feedback/spinner.js.map +1 -0
  51. package/dist/components/feedback/toast.d.ts +33 -0
  52. package/dist/components/feedback/toast.js +76 -0
  53. package/dist/components/feedback/toast.js.map +1 -0
  54. package/dist/components/forms/CodeField.d.ts +23 -0
  55. package/dist/components/forms/CodeField.js +63 -0
  56. package/dist/components/forms/CodeField.js.map +1 -0
  57. package/dist/components/forms/FileUpload.d.ts +34 -0
  58. package/dist/components/forms/FileUpload.js +319 -0
  59. package/dist/components/forms/FileUpload.js.map +1 -0
  60. package/dist/components/forms/Input.d.ts +14 -0
  61. package/dist/components/forms/Input.js +33 -0
  62. package/dist/components/forms/Input.js.map +1 -0
  63. package/dist/components/forms/NumberField.d.ts +15 -0
  64. package/dist/components/forms/NumberField.js +71 -0
  65. package/dist/components/forms/NumberField.js.map +1 -0
  66. package/dist/components/forms/OTPField.d.ts +15 -0
  67. package/dist/components/forms/OTPField.js +54 -0
  68. package/dist/components/forms/OTPField.js.map +1 -0
  69. package/dist/components/forms/TextField.d.ts +61 -0
  70. package/dist/components/forms/TextField.js +199 -0
  71. package/dist/components/forms/TextField.js.map +1 -0
  72. package/dist/components/forms/index.d.ts +7 -0
  73. package/dist/components/forms/internal.d.ts +33 -0
  74. package/dist/components/forms/internal.js +61 -0
  75. package/dist/components/forms/internal.js.map +1 -0
  76. package/dist/components/foundations/Avatar.d.ts +33 -0
  77. package/dist/components/foundations/Avatar.js +45 -0
  78. package/dist/components/foundations/Avatar.js.map +1 -0
  79. package/dist/components/foundations/Badge.d.ts +15 -0
  80. package/dist/components/foundations/Badge.js +32 -0
  81. package/dist/components/foundations/Badge.js.map +1 -0
  82. package/dist/components/foundations/Button.d.ts +18 -0
  83. package/dist/components/foundations/Button.js +47 -0
  84. package/dist/components/foundations/Button.js.map +1 -0
  85. package/dist/components/foundations/Card.d.ts +47 -0
  86. package/dist/components/foundations/Card.js +57 -0
  87. package/dist/components/foundations/Card.js.map +1 -0
  88. package/dist/components/foundations/IconButton.d.ts +25 -0
  89. package/dist/components/foundations/IconButton.js +19 -0
  90. package/dist/components/foundations/IconButton.js.map +1 -0
  91. package/dist/components/foundations/Link.d.ts +19 -0
  92. package/dist/components/foundations/Link.js +40 -0
  93. package/dist/components/foundations/Link.js.map +1 -0
  94. package/dist/components/foundations/ListCell.d.ts +68 -0
  95. package/dist/components/foundations/ListCell.js +105 -0
  96. package/dist/components/foundations/ListCell.js.map +1 -0
  97. package/dist/components/foundations/SectionHeading.d.ts +17 -0
  98. package/dist/components/foundations/SectionHeading.js +50 -0
  99. package/dist/components/foundations/SectionHeading.js.map +1 -0
  100. package/dist/components/foundations/Separator.d.ts +11 -0
  101. package/dist/components/foundations/Separator.js +21 -0
  102. package/dist/components/foundations/Separator.js.map +1 -0
  103. package/dist/components/foundations/index.d.ts +9 -0
  104. package/dist/components/foundations/shared.d.ts +5 -0
  105. package/dist/components/foundations/shared.js +8 -0
  106. package/dist/components/foundations/shared.js.map +1 -0
  107. package/dist/components/navigation-data/breadcrumb-pagination.d.ts +34 -0
  108. package/dist/components/navigation-data/breadcrumb-pagination.js +161 -0
  109. package/dist/components/navigation-data/breadcrumb-pagination.js.map +1 -0
  110. package/dist/components/navigation-data/command-palette.d.ts +35 -0
  111. package/dist/components/navigation-data/command-palette.js +151 -0
  112. package/dist/components/navigation-data/command-palette.js.map +1 -0
  113. package/dist/components/navigation-data/header-tab-bar.d.ts +23 -0
  114. package/dist/components/navigation-data/header-tab-bar.js +102 -0
  115. package/dist/components/navigation-data/header-tab-bar.js.map +1 -0
  116. package/dist/components/navigation-data/index.d.ts +7 -0
  117. package/dist/components/navigation-data/menubar-toolbar.d.ts +26 -0
  118. package/dist/components/navigation-data/menubar-toolbar.js +161 -0
  119. package/dist/components/navigation-data/menubar-toolbar.js.map +1 -0
  120. package/dist/components/navigation-data/navigation-menu.d.ts +14 -0
  121. package/dist/components/navigation-data/navigation-menu.js +87 -0
  122. package/dist/components/navigation-data/navigation-menu.js.map +1 -0
  123. package/dist/components/navigation-data/scroll-area.d.ts +6 -0
  124. package/dist/components/navigation-data/scroll-area.js +52 -0
  125. package/dist/components/navigation-data/scroll-area.js.map +1 -0
  126. package/dist/components/navigation-data/table-collection.d.ts +61 -0
  127. package/dist/components/navigation-data/table-collection.js +181 -0
  128. package/dist/components/navigation-data/table-collection.js.map +1 -0
  129. package/dist/components/navigation-data/utils.d.ts +2 -0
  130. package/dist/components/navigation-data/utils.js +11 -0
  131. package/dist/components/navigation-data/utils.js.map +1 -0
  132. package/dist/components/overlays/class-names.d.ts +6 -0
  133. package/dist/components/overlays/class-names.js +11 -0
  134. package/dist/components/overlays/class-names.js.map +1 -0
  135. package/dist/components/overlays/dialog.d.ts +98 -0
  136. package/dist/components/overlays/dialog.js +158 -0
  137. package/dist/components/overlays/dialog.js.map +1 -0
  138. package/dist/components/overlays/disclosure.d.ts +40 -0
  139. package/dist/components/overlays/disclosure.js +138 -0
  140. package/dist/components/overlays/disclosure.js.map +1 -0
  141. package/dist/components/overlays/drawer.d.ts +88 -0
  142. package/dist/components/overlays/drawer.js +192 -0
  143. package/dist/components/overlays/drawer.js.map +1 -0
  144. package/dist/components/overlays/floating.d.ts +83 -0
  145. package/dist/components/overlays/floating.js +220 -0
  146. package/dist/components/overlays/floating.js.map +1 -0
  147. package/dist/components/overlays/index.d.ts +4 -0
  148. package/dist/components/selection/classnames.d.ts +4 -0
  149. package/dist/components/selection/classnames.js +14 -0
  150. package/dist/components/selection/classnames.js.map +1 -0
  151. package/dist/components/selection/combobox.d.ts +118 -0
  152. package/dist/components/selection/combobox.js +284 -0
  153. package/dist/components/selection/combobox.js.map +1 -0
  154. package/dist/components/selection/controls.d.ts +65 -0
  155. package/dist/components/selection/controls.js +171 -0
  156. package/dist/components/selection/controls.js.map +1 -0
  157. package/dist/components/selection/index.d.ts +7 -0
  158. package/dist/components/selection/menu.d.ts +87 -0
  159. package/dist/components/selection/menu.js +157 -0
  160. package/dist/components/selection/menu.js.map +1 -0
  161. package/dist/components/selection/select.d.ts +55 -0
  162. package/dist/components/selection/select.js +138 -0
  163. package/dist/components/selection/select.js.map +1 -0
  164. package/dist/components/selection/selection.module.js +51 -0
  165. package/dist/components/selection/selection.module.js.map +1 -0
  166. package/dist/index.d.ts +7 -0
  167. package/dist/index.js +52 -0
  168. package/dist/styles.css +2 -0
  169. package/package.json +74 -0
@@ -0,0 +1,88 @@
1
+ import { Drawer as BaseDrawer, DrawerCloseProps as BaseDrawerCloseProps, DrawerPopupProps as BaseDrawerPopupProps, DrawerBackdropProps, DrawerContentProps, DrawerDescriptionProps, DrawerPortalProps, DrawerRootProps, DrawerSwipeAreaProps, DrawerTitleProps, DrawerTriggerProps, DrawerViewportProps } from '@base-ui/react/drawer';
2
+ import { HTMLAttributes, JSX, RefAttributes } from 'react';
3
+ export type { DrawerRootChangeEventDetails } from '@base-ui/react/drawer';
4
+ export declare function DrawerRoot<Payload = unknown>({ swipeDirection, ...props }: DrawerRootProps<Payload>): JSX.Element;
5
+ export declare function DrawerTrigger<Payload = unknown>({ className, ...props }: DrawerTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element;
6
+ export declare const DrawerPortal: import('react').ForwardRefExoticComponent<Omit<DrawerPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
7
+ export declare const DrawerBackdrop: import('react').ForwardRefExoticComponent<Omit<DrawerBackdropProps, "ref"> & RefAttributes<HTMLDivElement>>;
8
+ export declare const DrawerViewport: import('react').ForwardRefExoticComponent<Omit<DrawerViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
9
+ export interface DrawerPopupProps extends BaseDrawerPopupProps {
10
+ /** 內建關閉控制項的無障礙標籤。 */
11
+ closeLabel?: string;
12
+ /** 傳給內建關閉控制項的屬性。 */
13
+ closeProps?: Omit<DrawerCloseProps, "children">;
14
+ /** 僅在彈出內容另有可存取的 Drawer.Close 時設定。 */
15
+ hasCustomClose?: boolean;
16
+ }
17
+ export declare const DrawerPopup: import('react').ForwardRefExoticComponent<Omit<DrawerPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
18
+ export declare const DrawerContent: import('react').ForwardRefExoticComponent<Omit<DrawerContentProps, "ref"> & RefAttributes<HTMLDivElement>>;
19
+ export declare const DrawerTitle: import('react').ForwardRefExoticComponent<Omit<DrawerTitleProps, "ref"> & RefAttributes<HTMLHeadingElement>>;
20
+ export declare const DrawerDescription: import('react').ForwardRefExoticComponent<Omit<DrawerDescriptionProps, "ref"> & RefAttributes<HTMLParagraphElement>>;
21
+ export interface DrawerCloseProps extends BaseDrawerCloseProps {
22
+ /** 圖示控制項位於面板角落;動作控制項則參與內容排版。 */
23
+ variant?: "icon" | "action";
24
+ }
25
+ export declare const DrawerClose: import('react').ForwardRefExoticComponent<Omit<DrawerCloseProps, "ref"> & RefAttributes<HTMLButtonElement>>;
26
+ export declare const DrawerSwipeArea: import('react').ForwardRefExoticComponent<Omit<DrawerSwipeAreaProps, "ref"> & RefAttributes<HTMLDivElement>>;
27
+ export type DrawerHeaderProps = HTMLAttributes<HTMLDivElement>;
28
+ export declare const DrawerHeader: import('react').ForwardRefExoticComponent<DrawerHeaderProps & RefAttributes<HTMLDivElement>>;
29
+ export type DrawerBodyProps = HTMLAttributes<HTMLDivElement>;
30
+ export declare const DrawerBody: import('react').ForwardRefExoticComponent<DrawerBodyProps & RefAttributes<HTMLDivElement>>;
31
+ export type DrawerFooterProps = HTMLAttributes<HTMLDivElement>;
32
+ export declare const DrawerFooter: import('react').ForwardRefExoticComponent<DrawerFooterProps & RefAttributes<HTMLDivElement>>;
33
+ export declare const Drawer: {
34
+ readonly Root: typeof DrawerRoot;
35
+ readonly Trigger: typeof DrawerTrigger;
36
+ readonly Portal: import('react').ForwardRefExoticComponent<Omit<DrawerPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
37
+ readonly Backdrop: import('react').ForwardRefExoticComponent<Omit<DrawerBackdropProps, "ref"> & RefAttributes<HTMLDivElement>>;
38
+ readonly Viewport: import('react').ForwardRefExoticComponent<Omit<DrawerViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
39
+ readonly Popup: import('react').ForwardRefExoticComponent<Omit<DrawerPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
40
+ readonly Content: import('react').ForwardRefExoticComponent<Omit<DrawerContentProps, "ref"> & RefAttributes<HTMLDivElement>>;
41
+ readonly Header: import('react').ForwardRefExoticComponent<DrawerHeaderProps & RefAttributes<HTMLDivElement>>;
42
+ readonly Body: import('react').ForwardRefExoticComponent<DrawerBodyProps & RefAttributes<HTMLDivElement>>;
43
+ readonly Footer: import('react').ForwardRefExoticComponent<DrawerFooterProps & RefAttributes<HTMLDivElement>>;
44
+ readonly Title: import('react').ForwardRefExoticComponent<Omit<DrawerTitleProps, "ref"> & RefAttributes<HTMLHeadingElement>>;
45
+ readonly Description: import('react').ForwardRefExoticComponent<Omit<DrawerDescriptionProps, "ref"> & RefAttributes<HTMLParagraphElement>>;
46
+ readonly Close: import('react').ForwardRefExoticComponent<Omit<DrawerCloseProps, "ref"> & RefAttributes<HTMLButtonElement>>;
47
+ readonly SwipeArea: import('react').ForwardRefExoticComponent<Omit<DrawerSwipeAreaProps, "ref"> & RefAttributes<HTMLDivElement>>;
48
+ readonly Provider: typeof BaseDrawer.Provider;
49
+ readonly Indent: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').DrawerIndentProps, "ref"> & RefAttributes<HTMLDivElement>>;
50
+ readonly IndentBackground: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').DrawerIndentBackgroundProps, "ref"> & RefAttributes<HTMLDivElement>>;
51
+ readonly VirtualKeyboardProvider: typeof BaseDrawer.VirtualKeyboardProvider;
52
+ readonly createHandle: typeof BaseDrawer.createHandle;
53
+ readonly Handle: typeof BaseDrawer.Handle;
54
+ };
55
+ export type BottomSheetSnapPoint = number | `${number}rem`;
56
+ export interface BottomSheetRootProps<Payload = unknown> extends Omit<DrawerRootProps<Payload>, "snapPoints" | "swipeDirection"> {
57
+ /** 響應式面板建議使用 0 至 1 的比例值或 rem 長度。 */
58
+ snapPoints?: BottomSheetSnapPoint[];
59
+ /** 底部面板一律向下關閉。 */
60
+ swipeDirection?: "down";
61
+ }
62
+ export declare function BottomSheetRoot<Payload = unknown>({ snapPoints, defaultSnapPoint, ...props }: BottomSheetRootProps<Payload>): JSX.Element;
63
+ export declare const BottomSheetPopup: import('react').ForwardRefExoticComponent<Omit<DrawerPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
64
+ export type BottomSheetHandleProps = HTMLAttributes<HTMLDivElement>;
65
+ /** 符合觸控尺寸的裝飾性操作提示;滑動行為仍由 Base UI 負責。 */
66
+ export declare const BottomSheetHandle: import('react').ForwardRefExoticComponent<BottomSheetHandleProps & RefAttributes<HTMLDivElement>>;
67
+ export declare const BottomSheetHeader: import('react').ForwardRefExoticComponent<DrawerHeaderProps & RefAttributes<HTMLDivElement>>;
68
+ export declare const BottomSheetBody: import('react').ForwardRefExoticComponent<DrawerBodyProps & RefAttributes<HTMLDivElement>>;
69
+ export declare const BottomSheetFooter: import('react').ForwardRefExoticComponent<DrawerFooterProps & RefAttributes<HTMLDivElement>>;
70
+ export declare const BottomSheet: {
71
+ readonly Root: typeof BottomSheetRoot;
72
+ readonly Trigger: typeof DrawerTrigger;
73
+ readonly Portal: import('react').ForwardRefExoticComponent<Omit<DrawerPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
74
+ readonly Backdrop: import('react').ForwardRefExoticComponent<Omit<DrawerBackdropProps, "ref"> & RefAttributes<HTMLDivElement>>;
75
+ readonly Viewport: import('react').ForwardRefExoticComponent<Omit<DrawerViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
76
+ readonly Popup: import('react').ForwardRefExoticComponent<Omit<DrawerPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
77
+ readonly Content: import('react').ForwardRefExoticComponent<Omit<DrawerContentProps, "ref"> & RefAttributes<HTMLDivElement>>;
78
+ readonly Handle: import('react').ForwardRefExoticComponent<BottomSheetHandleProps & RefAttributes<HTMLDivElement>>;
79
+ readonly Header: import('react').ForwardRefExoticComponent<DrawerHeaderProps & RefAttributes<HTMLDivElement>>;
80
+ readonly Body: import('react').ForwardRefExoticComponent<DrawerBodyProps & RefAttributes<HTMLDivElement>>;
81
+ readonly Footer: import('react').ForwardRefExoticComponent<DrawerFooterProps & RefAttributes<HTMLDivElement>>;
82
+ readonly Title: import('react').ForwardRefExoticComponent<Omit<DrawerTitleProps, "ref"> & RefAttributes<HTMLHeadingElement>>;
83
+ readonly Description: import('react').ForwardRefExoticComponent<Omit<DrawerDescriptionProps, "ref"> & RefAttributes<HTMLParagraphElement>>;
84
+ readonly Close: import('react').ForwardRefExoticComponent<Omit<DrawerCloseProps, "ref"> & RefAttributes<HTMLButtonElement>>;
85
+ readonly SwipeArea: import('react').ForwardRefExoticComponent<Omit<DrawerSwipeAreaProps, "ref"> & RefAttributes<HTMLDivElement>>;
86
+ readonly createHandle: typeof BaseDrawer.createHandle;
87
+ readonly ImperativeHandle: typeof BaseDrawer.Handle;
88
+ };
@@ -0,0 +1,192 @@
1
+ import { mergeClassName as e } from "./class-names.js";
2
+ import { forwardRef as t } from "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import { XIcon as i } from "@phosphor-icons/react/dist/csr/X";
5
+ import { Drawer as a } from "@base-ui/react/drawer";
6
+ //#region src/components/overlays/drawer.tsx
7
+ function o() {
8
+ return /* @__PURE__ */ n(i, {
9
+ "aria-hidden": "true",
10
+ className: "lyds-overlayClose__glyph",
11
+ weight: "bold"
12
+ });
13
+ }
14
+ function s({ swipeDirection: e = "right", ...t }) {
15
+ return /* @__PURE__ */ n(a.Root, {
16
+ ...t,
17
+ swipeDirection: e
18
+ });
19
+ }
20
+ function c({ className: t, ...r }) {
21
+ return /* @__PURE__ */ n(a.Trigger, {
22
+ ...r,
23
+ className: e("lyds-drawer__trigger", t)
24
+ });
25
+ }
26
+ var l = t(function(e, t) {
27
+ return /* @__PURE__ */ n(a.Portal, {
28
+ ...e,
29
+ ref: t
30
+ });
31
+ }), u = t(function({ className: t, ...r }, i) {
32
+ return /* @__PURE__ */ n(a.Backdrop, {
33
+ ...r,
34
+ ref: i,
35
+ className: e("lyds-drawer__backdrop", t)
36
+ });
37
+ }), d = t(function({ className: t, ...r }, i) {
38
+ return /* @__PURE__ */ n(a.Viewport, {
39
+ ...r,
40
+ ref: i,
41
+ className: e("lyds-drawer__viewport", t)
42
+ });
43
+ }), f = t(function({ children: t, className: i, closeLabel: o = "關閉側欄", closeProps: s, hasCustomClose: c = !1, ...l }, u) {
44
+ return /* @__PURE__ */ r(a.Popup, {
45
+ ...l,
46
+ ref: u,
47
+ className: e("lyds-drawer__popup", i),
48
+ children: [t, c ? null : /* @__PURE__ */ n(g, {
49
+ ...s,
50
+ "aria-label": o
51
+ })]
52
+ });
53
+ }), p = t(function({ className: t, ...r }, i) {
54
+ return /* @__PURE__ */ n(a.Content, {
55
+ ...r,
56
+ ref: i,
57
+ className: e("lyds-drawer__content", t)
58
+ });
59
+ }), m = t(function({ className: t, ...r }, i) {
60
+ return /* @__PURE__ */ n(a.Title, {
61
+ ...r,
62
+ ref: i,
63
+ className: e("lyds-drawer__title", t)
64
+ });
65
+ }), h = t(function({ className: t, ...r }, i) {
66
+ return /* @__PURE__ */ n(a.Description, {
67
+ ...r,
68
+ ref: i,
69
+ className: e("lyds-drawer__description", t)
70
+ });
71
+ }), g = t(function({ "aria-label": t, children: r, className: i, variant: s = r == null ? "icon" : "action", ...c }, l) {
72
+ return /* @__PURE__ */ n(a.Close, {
73
+ ...c,
74
+ ref: l,
75
+ "aria-label": t ?? (r == null ? "關閉側欄" : void 0),
76
+ className: e(s === "icon" ? "lyds-overlayClose" : "lyds-overlayCloseAction", i),
77
+ children: r ?? /* @__PURE__ */ n(o, {})
78
+ });
79
+ }), _ = t(function({ className: t, ...r }, i) {
80
+ return /* @__PURE__ */ n(a.SwipeArea, {
81
+ ...r,
82
+ ref: i,
83
+ className: e("lyds-drawer__swipeArea", t)
84
+ });
85
+ }), v = t(function({ className: e, ...t }, r) {
86
+ return /* @__PURE__ */ n("div", {
87
+ ...t,
88
+ ref: r,
89
+ className: e ? `lyds-drawer__header ${e}` : "lyds-drawer__header"
90
+ });
91
+ }), y = t(function({ className: e, ...t }, r) {
92
+ return /* @__PURE__ */ n("div", {
93
+ ...t,
94
+ ref: r,
95
+ className: e ? `lyds-drawer__body ${e}` : "lyds-drawer__body"
96
+ });
97
+ }), b = t(function({ className: e, ...t }, r) {
98
+ return /* @__PURE__ */ n("div", {
99
+ ...t,
100
+ ref: r,
101
+ className: e ? `lyds-drawer__footer ${e}` : "lyds-drawer__footer"
102
+ });
103
+ }), x = {
104
+ Root: s,
105
+ Trigger: c,
106
+ Portal: l,
107
+ Backdrop: u,
108
+ Viewport: d,
109
+ Popup: f,
110
+ Content: p,
111
+ Header: v,
112
+ Body: y,
113
+ Footer: b,
114
+ Title: m,
115
+ Description: h,
116
+ Close: g,
117
+ SwipeArea: _,
118
+ Provider: a.Provider,
119
+ Indent: a.Indent,
120
+ IndentBackground: a.IndentBackground,
121
+ VirtualKeyboardProvider: a.VirtualKeyboardProvider,
122
+ createHandle: a.createHandle,
123
+ Handle: a.Handle
124
+ }, S = [.45, .92];
125
+ function C({ snapPoints: e = S, defaultSnapPoint: t, ...r }) {
126
+ let i = e.at(-1) ?? null;
127
+ return /* @__PURE__ */ n(a.Root, {
128
+ ...r,
129
+ swipeDirection: "down",
130
+ snapPoints: e,
131
+ defaultSnapPoint: t ?? i
132
+ });
133
+ }
134
+ var w = t(function({ children: t, className: i, closeLabel: o = "關閉底部面板", closeProps: s, hasCustomClose: c = !1, ...l }, u) {
135
+ return /* @__PURE__ */ r(a.Popup, {
136
+ ...l,
137
+ ref: u,
138
+ className: e("lyds-drawer__popup lyds-bottomSheet__popup", i),
139
+ children: [t, c ? null : /* @__PURE__ */ n(g, {
140
+ ...s,
141
+ "aria-label": o
142
+ })]
143
+ });
144
+ }), T = t(function({ className: e, ...t }, r) {
145
+ return /* @__PURE__ */ n("div", {
146
+ ...t,
147
+ ref: r,
148
+ "aria-hidden": "true",
149
+ className: e ? `lyds-bottomSheet__handle ${e}` : "lyds-bottomSheet__handle",
150
+ children: /* @__PURE__ */ n("span", { className: "lyds-bottomSheet__handleBar" })
151
+ });
152
+ }), E = t(function({ className: e, ...t }, r) {
153
+ return /* @__PURE__ */ n("div", {
154
+ ...t,
155
+ ref: r,
156
+ className: e ? `lyds-drawer__header lyds-bottomSheet__header ${e}` : "lyds-drawer__header lyds-bottomSheet__header"
157
+ });
158
+ }), D = t(function({ className: e, ...t }, r) {
159
+ return /* @__PURE__ */ n("div", {
160
+ ...t,
161
+ ref: r,
162
+ className: e ? `lyds-drawer__body lyds-bottomSheet__body ${e}` : "lyds-drawer__body lyds-bottomSheet__body"
163
+ });
164
+ }), O = t(function({ className: e, ...t }, r) {
165
+ return /* @__PURE__ */ n("div", {
166
+ ...t,
167
+ ref: r,
168
+ className: e ? `lyds-drawer__footer lyds-bottomSheet__footer ${e}` : "lyds-drawer__footer lyds-bottomSheet__footer"
169
+ });
170
+ }), k = {
171
+ Root: C,
172
+ Trigger: c,
173
+ Portal: l,
174
+ Backdrop: u,
175
+ Viewport: d,
176
+ Popup: w,
177
+ Content: p,
178
+ Handle: T,
179
+ Header: E,
180
+ Body: D,
181
+ Footer: O,
182
+ Title: m,
183
+ Description: h,
184
+ Close: g,
185
+ SwipeArea: _,
186
+ createHandle: a.createHandle,
187
+ ImperativeHandle: a.Handle
188
+ };
189
+ //#endregion
190
+ export { k as BottomSheet, D as BottomSheetBody, O as BottomSheetFooter, T as BottomSheetHandle, E as BottomSheetHeader, w as BottomSheetPopup, C as BottomSheetRoot, x as Drawer, u as DrawerBackdrop, y as DrawerBody, g as DrawerClose, p as DrawerContent, h as DrawerDescription, b as DrawerFooter, v as DrawerHeader, f as DrawerPopup, l as DrawerPortal, s as DrawerRoot, _ as DrawerSwipeArea, m as DrawerTitle, c as DrawerTrigger, d as DrawerViewport };
191
+
192
+ //# sourceMappingURL=drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.js","names":[],"sources":["../../../src/components/overlays/drawer.tsx"],"sourcesContent":["import {\n\tDrawer as BaseDrawer,\n\ttype DrawerCloseProps as BaseDrawerCloseProps,\n\ttype DrawerPopupProps as BaseDrawerPopupProps,\n\ttype DrawerBackdropProps,\n\ttype DrawerContentProps,\n\ttype DrawerDescriptionProps,\n\ttype DrawerPortalProps,\n\ttype DrawerRootProps,\n\ttype DrawerSwipeAreaProps,\n\ttype DrawerTitleProps,\n\ttype DrawerTriggerProps,\n\ttype DrawerViewportProps\n} from \"@base-ui/react/drawer\";\nimport { XIcon } from \"@phosphor-icons/react/dist/csr/X\";\nimport { forwardRef, type HTMLAttributes, type JSX, type RefAttributes } from \"react\";\n\nimport { mergeClassName } from \"./class-names\";\n\nexport type { DrawerRootChangeEventDetails } from \"@base-ui/react/drawer\";\n\nfunction CloseGlyph(): JSX.Element {\n\treturn <XIcon aria-hidden=\"true\" className=\"lyds-overlayClose__glyph\" weight=\"bold\" />;\n}\n\nexport function DrawerRoot<Payload = unknown>({ swipeDirection = \"right\", ...props }: DrawerRootProps<Payload>): JSX.Element {\n\treturn <BaseDrawer.Root {...props} swipeDirection={swipeDirection} />;\n}\n\nexport function DrawerTrigger<Payload = unknown>({ className, ...props }: DrawerTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element {\n\treturn <BaseDrawer.Trigger {...props} className={mergeClassName(\"lyds-drawer__trigger\", className)} />;\n}\n\nexport const DrawerPortal = forwardRef<HTMLDivElement, DrawerPortalProps>(function DrawerPortal(props, ref) {\n\treturn <BaseDrawer.Portal {...props} ref={ref} />;\n});\n\nexport const DrawerBackdrop = forwardRef<HTMLDivElement, DrawerBackdropProps>(function DrawerBackdrop({ className, ...props }, ref) {\n\treturn <BaseDrawer.Backdrop {...props} ref={ref} className={mergeClassName(\"lyds-drawer__backdrop\", className)} />;\n});\n\nexport const DrawerViewport = forwardRef<HTMLDivElement, DrawerViewportProps>(function DrawerViewport({ className, ...props }, ref) {\n\treturn <BaseDrawer.Viewport {...props} ref={ref} className={mergeClassName(\"lyds-drawer__viewport\", className)} />;\n});\n\nexport interface DrawerPopupProps extends BaseDrawerPopupProps {\n\t/** 內建關閉控制項的無障礙標籤。 */\n\tcloseLabel?: string;\n\t/** 傳給內建關閉控制項的屬性。 */\n\tcloseProps?: Omit<DrawerCloseProps, \"children\">;\n\t/** 僅在彈出內容另有可存取的 Drawer.Close 時設定。 */\n\thasCustomClose?: boolean;\n}\n\nexport const DrawerPopup = forwardRef<HTMLDivElement, DrawerPopupProps>(function DrawerPopup({ children, className, closeLabel = \"關閉側欄\", closeProps, hasCustomClose = false, ...props }, ref) {\n\treturn (\n\t\t<BaseDrawer.Popup {...props} ref={ref} className={mergeClassName(\"lyds-drawer__popup\", className)}>\n\t\t\t{children}\n\t\t\t{hasCustomClose ? null : <DrawerClose {...closeProps} aria-label={closeLabel} />}\n\t\t</BaseDrawer.Popup>\n\t);\n});\n\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(function DrawerContent({ className, ...props }, ref) {\n\treturn <BaseDrawer.Content {...props} ref={ref} className={mergeClassName(\"lyds-drawer__content\", className)} />;\n});\n\nexport const DrawerTitle = forwardRef<HTMLHeadingElement, DrawerTitleProps>(function DrawerTitle({ className, ...props }, ref) {\n\treturn <BaseDrawer.Title {...props} ref={ref} className={mergeClassName(\"lyds-drawer__title\", className)} />;\n});\n\nexport const DrawerDescription = forwardRef<HTMLParagraphElement, DrawerDescriptionProps>(function DrawerDescription({ className, ...props }, ref) {\n\treturn <BaseDrawer.Description {...props} ref={ref} className={mergeClassName(\"lyds-drawer__description\", className)} />;\n});\n\nexport interface DrawerCloseProps extends BaseDrawerCloseProps {\n\t/** 圖示控制項位於面板角落;動作控制項則參與內容排版。 */\n\tvariant?: \"icon\" | \"action\";\n}\n\nexport const DrawerClose = forwardRef<HTMLButtonElement, DrawerCloseProps>(function DrawerClose(\n\t{ \"aria-label\": ariaLabel, children, className, variant = children == null ? \"icon\" : \"action\", ...props },\n\tref\n) {\n\treturn (\n\t\t<BaseDrawer.Close\n\t\t\t{...props}\n\t\t\tref={ref}\n\t\t\taria-label={ariaLabel ?? (children == null ? \"關閉側欄\" : undefined)}\n\t\t\tclassName={mergeClassName(variant === \"icon\" ? \"lyds-overlayClose\" : \"lyds-overlayCloseAction\", className)}\n\t\t>\n\t\t\t{children ?? <CloseGlyph />}\n\t\t</BaseDrawer.Close>\n\t);\n});\n\nexport const DrawerSwipeArea = forwardRef<HTMLDivElement, DrawerSwipeAreaProps>(function DrawerSwipeArea({ className, ...props }, ref) {\n\treturn <BaseDrawer.SwipeArea {...props} ref={ref} className={mergeClassName(\"lyds-drawer__swipeArea\", className)} />;\n});\n\nexport type DrawerHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const DrawerHeader = forwardRef<HTMLDivElement, DrawerHeaderProps>(function DrawerHeader({ className, ...props }, ref) {\n\treturn <div {...props} ref={ref} className={className ? `lyds-drawer__header ${className}` : \"lyds-drawer__header\"} />;\n});\n\nexport type DrawerBodyProps = HTMLAttributes<HTMLDivElement>;\n\nexport const DrawerBody = forwardRef<HTMLDivElement, DrawerBodyProps>(function DrawerBody({ className, ...props }, ref) {\n\treturn <div {...props} ref={ref} className={className ? `lyds-drawer__body ${className}` : \"lyds-drawer__body\"} />;\n});\n\nexport type DrawerFooterProps = HTMLAttributes<HTMLDivElement>;\n\nexport const DrawerFooter = forwardRef<HTMLDivElement, DrawerFooterProps>(function DrawerFooter({ className, ...props }, ref) {\n\treturn <div {...props} ref={ref} className={className ? `lyds-drawer__footer ${className}` : \"lyds-drawer__footer\"} />;\n});\n\nexport const Drawer = {\n\tRoot: DrawerRoot,\n\tTrigger: DrawerTrigger,\n\tPortal: DrawerPortal,\n\tBackdrop: DrawerBackdrop,\n\tViewport: DrawerViewport,\n\tPopup: DrawerPopup,\n\tContent: DrawerContent,\n\tHeader: DrawerHeader,\n\tBody: DrawerBody,\n\tFooter: DrawerFooter,\n\tTitle: DrawerTitle,\n\tDescription: DrawerDescription,\n\tClose: DrawerClose,\n\tSwipeArea: DrawerSwipeArea,\n\tProvider: BaseDrawer.Provider,\n\tIndent: BaseDrawer.Indent,\n\tIndentBackground: BaseDrawer.IndentBackground,\n\tVirtualKeyboardProvider: BaseDrawer.VirtualKeyboardProvider,\n\tcreateHandle: BaseDrawer.createHandle,\n\tHandle: BaseDrawer.Handle\n} as const;\n\nexport type BottomSheetSnapPoint = number | `${number}rem`;\n\nexport interface BottomSheetRootProps<Payload = unknown> extends Omit<DrawerRootProps<Payload>, \"snapPoints\" | \"swipeDirection\"> {\n\t/** 響應式面板建議使用 0 至 1 的比例值或 rem 長度。 */\n\tsnapPoints?: BottomSheetSnapPoint[];\n\t/** 底部面板一律向下關閉。 */\n\tswipeDirection?: \"down\";\n}\n\nconst defaultBottomSheetSnapPoints: BottomSheetSnapPoint[] = [0.45, 0.92];\n\nexport function BottomSheetRoot<Payload = unknown>({ snapPoints = defaultBottomSheetSnapPoints, defaultSnapPoint, ...props }: BottomSheetRootProps<Payload>): JSX.Element {\n\tconst accessibleDefaultSnapPoint = snapPoints.at(-1) ?? null;\n\treturn <BaseDrawer.Root {...props} swipeDirection=\"down\" snapPoints={snapPoints} defaultSnapPoint={defaultSnapPoint ?? accessibleDefaultSnapPoint} />;\n}\n\nexport const BottomSheetPopup = forwardRef<HTMLDivElement, DrawerPopupProps>(function BottomSheetPopup(\n\t{ children, className, closeLabel = \"關閉底部面板\", closeProps, hasCustomClose = false, ...props },\n\tref\n) {\n\treturn (\n\t\t<BaseDrawer.Popup {...props} ref={ref} className={mergeClassName(\"lyds-drawer__popup lyds-bottomSheet__popup\", className)}>\n\t\t\t{children}\n\t\t\t{hasCustomClose ? null : <DrawerClose {...closeProps} aria-label={closeLabel} />}\n\t\t</BaseDrawer.Popup>\n\t);\n});\n\nexport type BottomSheetHandleProps = HTMLAttributes<HTMLDivElement>;\n\n/** 符合觸控尺寸的裝飾性操作提示;滑動行為仍由 Base UI 負責。 */\nexport const BottomSheetHandle = forwardRef<HTMLDivElement, BottomSheetHandleProps>(function BottomSheetHandle({ className, ...props }, ref) {\n\treturn (\n\t\t<div {...props} ref={ref} aria-hidden=\"true\" className={className ? `lyds-bottomSheet__handle ${className}` : \"lyds-bottomSheet__handle\"}>\n\t\t\t<span className=\"lyds-bottomSheet__handleBar\" />\n\t\t</div>\n\t);\n});\n\nexport const BottomSheetHeader = forwardRef<HTMLDivElement, DrawerHeaderProps>(function BottomSheetHeader({ className, ...props }, ref) {\n\treturn <div {...props} ref={ref} className={className ? `lyds-drawer__header lyds-bottomSheet__header ${className}` : \"lyds-drawer__header lyds-bottomSheet__header\"} />;\n});\n\nexport const BottomSheetBody = forwardRef<HTMLDivElement, DrawerBodyProps>(function BottomSheetBody({ className, ...props }, ref) {\n\treturn <div {...props} ref={ref} className={className ? `lyds-drawer__body lyds-bottomSheet__body ${className}` : \"lyds-drawer__body lyds-bottomSheet__body\"} />;\n});\n\nexport const BottomSheetFooter = forwardRef<HTMLDivElement, DrawerFooterProps>(function BottomSheetFooter({ className, ...props }, ref) {\n\treturn <div {...props} ref={ref} className={className ? `lyds-drawer__footer lyds-bottomSheet__footer ${className}` : \"lyds-drawer__footer lyds-bottomSheet__footer\"} />;\n});\n\nexport const BottomSheet = {\n\tRoot: BottomSheetRoot,\n\tTrigger: DrawerTrigger,\n\tPortal: DrawerPortal,\n\tBackdrop: DrawerBackdrop,\n\tViewport: DrawerViewport,\n\tPopup: BottomSheetPopup,\n\tContent: DrawerContent,\n\tHandle: BottomSheetHandle,\n\tHeader: BottomSheetHeader,\n\tBody: BottomSheetBody,\n\tFooter: BottomSheetFooter,\n\tTitle: DrawerTitle,\n\tDescription: DrawerDescription,\n\tClose: DrawerClose,\n\tSwipeArea: DrawerSwipeArea,\n\tcreateHandle: BaseDrawer.createHandle,\n\tImperativeHandle: BaseDrawer.Handle\n} as const;\n"],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { Popover as BasePopover, PopoverCloseProps as BasePopoverCloseProps, PopoverArrowProps, PopoverBackdropProps, PopoverDescriptionProps, PopoverPopupProps, PopoverPortalProps, PopoverPositionerProps, PopoverRootProps, PopoverTitleProps, PopoverTriggerProps, PopoverViewportProps } from '@base-ui/react/popover';
2
+ import { PreviewCard as BasePreviewCard, PreviewCardArrowProps, PreviewCardBackdropProps, PreviewCardPopupProps, PreviewCardPortalProps, PreviewCardPositionerProps, PreviewCardRootProps, PreviewCardTriggerProps, PreviewCardViewportProps } from '@base-ui/react/preview-card';
3
+ import { Tooltip as BaseTooltip, TooltipPopupProps as BaseTooltipPopupProps, TooltipRootProps as BaseTooltipRootProps, TooltipArrowProps, TooltipPortalProps, TooltipPositionerProps, TooltipProviderProps, TooltipTriggerProps, TooltipViewportProps } from '@base-ui/react/tooltip';
4
+ import { JSX, RefAttributes } from 'react';
5
+ export type { PopoverRootChangeEventDetails } from '@base-ui/react/popover';
6
+ export type { PreviewCardRootChangeEventDetails } from '@base-ui/react/preview-card';
7
+ export type { TooltipRootChangeEventDetails } from '@base-ui/react/tooltip';
8
+ export declare function TooltipProvider(props: TooltipProviderProps): JSX.Element;
9
+ export interface TooltipRootProps<Payload = unknown> extends BaseTooltipRootProps<Payload> {
10
+ /** 將觸發項目與 Tooltip 說明關聯的穩定 id。 */
11
+ descriptionId?: string;
12
+ }
13
+ export type TooltipPopupProps = Omit<BaseTooltipPopupProps, "id" | "role">;
14
+ export declare function TooltipRoot<Payload = unknown>({ descriptionId, ...props }: TooltipRootProps<Payload>): JSX.Element;
15
+ export declare function TooltipTrigger<Payload = unknown>({ className, ...props }: TooltipTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element;
16
+ export declare const TooltipPortal: import('react').ForwardRefExoticComponent<Omit<TooltipPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
17
+ export declare const TooltipPositioner: import('react').ForwardRefExoticComponent<Omit<TooltipPositionerProps, "ref"> & RefAttributes<HTMLDivElement>>;
18
+ export declare const TooltipPopup: import('react').ForwardRefExoticComponent<Omit<TooltipPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
19
+ export declare const TooltipArrow: import('react').ForwardRefExoticComponent<Omit<TooltipArrowProps, "ref"> & RefAttributes<HTMLDivElement>>;
20
+ export declare const TooltipViewport: import('react').ForwardRefExoticComponent<Omit<TooltipViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
21
+ export declare const Tooltip: {
22
+ readonly Provider: typeof TooltipProvider;
23
+ readonly Root: typeof TooltipRoot;
24
+ readonly Trigger: typeof TooltipTrigger;
25
+ readonly Portal: import('react').ForwardRefExoticComponent<Omit<TooltipPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
26
+ readonly Positioner: import('react').ForwardRefExoticComponent<Omit<TooltipPositionerProps, "ref"> & RefAttributes<HTMLDivElement>>;
27
+ readonly Popup: import('react').ForwardRefExoticComponent<Omit<TooltipPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
28
+ readonly Arrow: import('react').ForwardRefExoticComponent<Omit<TooltipArrowProps, "ref"> & RefAttributes<HTMLDivElement>>;
29
+ readonly Viewport: import('react').ForwardRefExoticComponent<Omit<TooltipViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
30
+ readonly createHandle: typeof BaseTooltip.createHandle;
31
+ readonly Handle: typeof BaseTooltip.Handle;
32
+ };
33
+ export declare function PopoverRoot<Payload = unknown>(props: PopoverRootProps<Payload>): JSX.Element;
34
+ export declare function PopoverTrigger<Payload = unknown>({ className, ...props }: PopoverTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element;
35
+ export declare const PopoverPortal: import('react').ForwardRefExoticComponent<Omit<PopoverPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
36
+ export declare const PopoverPositioner: import('react').ForwardRefExoticComponent<Omit<PopoverPositionerProps, "ref"> & RefAttributes<HTMLDivElement>>;
37
+ export declare const PopoverBackdrop: import('react').ForwardRefExoticComponent<Omit<PopoverBackdropProps, "ref"> & RefAttributes<HTMLDivElement>>;
38
+ export declare const PopoverPopup: import('react').ForwardRefExoticComponent<Omit<PopoverPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
39
+ export declare const PopoverArrow: import('react').ForwardRefExoticComponent<Omit<PopoverArrowProps, "ref"> & RefAttributes<HTMLDivElement>>;
40
+ export declare const PopoverTitle: import('react').ForwardRefExoticComponent<Omit<PopoverTitleProps, "ref"> & RefAttributes<HTMLHeadingElement>>;
41
+ export declare const PopoverDescription: import('react').ForwardRefExoticComponent<Omit<PopoverDescriptionProps, "ref"> & RefAttributes<HTMLParagraphElement>>;
42
+ export interface PopoverCloseProps extends BasePopoverCloseProps {
43
+ /** 圖示控制項位於面板角落;動作控制項則參與內容排版。 */
44
+ variant?: "icon" | "action";
45
+ }
46
+ export declare const PopoverClose: import('react').ForwardRefExoticComponent<Omit<PopoverCloseProps, "ref"> & RefAttributes<HTMLButtonElement>>;
47
+ export declare const PopoverViewport: import('react').ForwardRefExoticComponent<Omit<PopoverViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
48
+ export declare const Popover: {
49
+ readonly Root: typeof PopoverRoot;
50
+ readonly Trigger: typeof PopoverTrigger;
51
+ readonly Portal: import('react').ForwardRefExoticComponent<Omit<PopoverPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
52
+ readonly Positioner: import('react').ForwardRefExoticComponent<Omit<PopoverPositionerProps, "ref"> & RefAttributes<HTMLDivElement>>;
53
+ readonly Backdrop: import('react').ForwardRefExoticComponent<Omit<PopoverBackdropProps, "ref"> & RefAttributes<HTMLDivElement>>;
54
+ readonly Popup: import('react').ForwardRefExoticComponent<Omit<PopoverPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
55
+ readonly Arrow: import('react').ForwardRefExoticComponent<Omit<PopoverArrowProps, "ref"> & RefAttributes<HTMLDivElement>>;
56
+ readonly Title: import('react').ForwardRefExoticComponent<Omit<PopoverTitleProps, "ref"> & RefAttributes<HTMLHeadingElement>>;
57
+ readonly Description: import('react').ForwardRefExoticComponent<Omit<PopoverDescriptionProps, "ref"> & RefAttributes<HTMLParagraphElement>>;
58
+ readonly Close: import('react').ForwardRefExoticComponent<Omit<PopoverCloseProps, "ref"> & RefAttributes<HTMLButtonElement>>;
59
+ readonly Viewport: import('react').ForwardRefExoticComponent<Omit<PopoverViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
60
+ readonly createHandle: typeof BasePopover.createHandle;
61
+ readonly Handle: typeof BasePopover.Handle;
62
+ };
63
+ export declare function PreviewCardRoot<Payload = unknown>(props: PreviewCardRootProps<Payload>): JSX.Element;
64
+ export declare function PreviewCardTrigger<Payload = unknown>({ className, ...props }: PreviewCardTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element;
65
+ export declare const PreviewCardPortal: import('react').ForwardRefExoticComponent<Omit<PreviewCardPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
66
+ export declare const PreviewCardPositioner: import('react').ForwardRefExoticComponent<Omit<PreviewCardPositionerProps, "ref"> & RefAttributes<HTMLDivElement>>;
67
+ /** PreviewCard 僅補充觸發項目的資訊;必要內容仍應顯示於頁面中。 */
68
+ export declare const PreviewCardPopup: import('react').ForwardRefExoticComponent<Omit<PreviewCardPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
69
+ export declare const PreviewCardArrow: import('react').ForwardRefExoticComponent<Omit<PreviewCardArrowProps, "ref"> & RefAttributes<HTMLDivElement>>;
70
+ export declare const PreviewCardBackdrop: import('react').ForwardRefExoticComponent<Omit<PreviewCardBackdropProps, "ref"> & RefAttributes<HTMLDivElement>>;
71
+ export declare const PreviewCardViewport: import('react').ForwardRefExoticComponent<Omit<PreviewCardViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
72
+ export declare const PreviewCard: {
73
+ readonly Root: typeof PreviewCardRoot;
74
+ readonly Trigger: typeof PreviewCardTrigger;
75
+ readonly Portal: import('react').ForwardRefExoticComponent<Omit<PreviewCardPortalProps, "ref"> & RefAttributes<HTMLDivElement>>;
76
+ readonly Positioner: import('react').ForwardRefExoticComponent<Omit<PreviewCardPositionerProps, "ref"> & RefAttributes<HTMLDivElement>>;
77
+ readonly Popup: import('react').ForwardRefExoticComponent<Omit<PreviewCardPopupProps, "ref"> & RefAttributes<HTMLDivElement>>;
78
+ readonly Arrow: import('react').ForwardRefExoticComponent<Omit<PreviewCardArrowProps, "ref"> & RefAttributes<HTMLDivElement>>;
79
+ readonly Backdrop: import('react').ForwardRefExoticComponent<Omit<PreviewCardBackdropProps, "ref"> & RefAttributes<HTMLDivElement>>;
80
+ readonly Viewport: import('react').ForwardRefExoticComponent<Omit<PreviewCardViewportProps, "ref"> & RefAttributes<HTMLDivElement>>;
81
+ readonly createHandle: typeof BasePreviewCard.createHandle;
82
+ readonly Handle: typeof BasePreviewCard.Handle;
83
+ };
@@ -0,0 +1,220 @@
1
+ import { mergeClassName as e } from "./class-names.js";
2
+ import { createContext as t, forwardRef as n, useContext as r, useId as i } from "react";
3
+ import { jsx as a } from "react/jsx-runtime";
4
+ import { XIcon as o } from "@phosphor-icons/react/dist/csr/X";
5
+ import { Popover as s } from "@base-ui/react/popover";
6
+ import { PreviewCard as c } from "@base-ui/react/preview-card";
7
+ import { Tooltip as l } from "@base-ui/react/tooltip";
8
+ //#region src/components/overlays/floating.tsx
9
+ var u = t(void 0);
10
+ function d() {
11
+ return /* @__PURE__ */ a(o, {
12
+ "aria-hidden": "true",
13
+ className: "lyds-overlayClose__glyph",
14
+ weight: "bold"
15
+ });
16
+ }
17
+ function f(e) {
18
+ return /* @__PURE__ */ a(l.Provider, { ...e });
19
+ }
20
+ function p({ descriptionId: e, ...t }) {
21
+ let n = i();
22
+ return /* @__PURE__ */ a(u.Provider, {
23
+ value: e ?? `lyds-tooltip-${n}`,
24
+ children: /* @__PURE__ */ a(l.Root, { ...t })
25
+ });
26
+ }
27
+ function m({ className: t, ...n }) {
28
+ let i = r(u), o = [n["aria-describedby"], i].filter(Boolean).join(" ") || void 0;
29
+ return /* @__PURE__ */ a(l.Trigger, {
30
+ ...n,
31
+ "aria-describedby": o,
32
+ className: e("lyds-tooltip__trigger", t)
33
+ });
34
+ }
35
+ var h = n(function(e, t) {
36
+ return /* @__PURE__ */ a(l.Portal, {
37
+ ...e,
38
+ ref: t
39
+ });
40
+ }), g = n(function({ className: t, sideOffset: n = 8, ...r }, i) {
41
+ return /* @__PURE__ */ a(l.Positioner, {
42
+ ...r,
43
+ ref: i,
44
+ sideOffset: n,
45
+ className: e("lyds-tooltip__positioner", t)
46
+ });
47
+ }), _ = n(function({ className: t, ...n }, i) {
48
+ let o = r(u);
49
+ return /* @__PURE__ */ a(l.Popup, {
50
+ ...n,
51
+ ref: i,
52
+ id: o,
53
+ role: "tooltip",
54
+ className: e("lyds-tooltip__popup", t)
55
+ });
56
+ }), v = n(function({ className: t, ...n }, r) {
57
+ return /* @__PURE__ */ a(l.Arrow, {
58
+ ...n,
59
+ ref: r,
60
+ className: e("lyds-tooltip__arrow", t)
61
+ });
62
+ }), y = n(function({ className: t, ...n }, r) {
63
+ return /* @__PURE__ */ a(l.Viewport, {
64
+ ...n,
65
+ ref: r,
66
+ className: e("lyds-tooltip__viewport", t)
67
+ });
68
+ }), b = {
69
+ Provider: f,
70
+ Root: p,
71
+ Trigger: m,
72
+ Portal: h,
73
+ Positioner: g,
74
+ Popup: _,
75
+ Arrow: v,
76
+ Viewport: y,
77
+ createHandle: l.createHandle,
78
+ Handle: l.Handle
79
+ };
80
+ function x(e) {
81
+ return /* @__PURE__ */ a(s.Root, { ...e });
82
+ }
83
+ function S({ className: t, ...n }) {
84
+ return /* @__PURE__ */ a(s.Trigger, {
85
+ ...n,
86
+ className: e("lyds-popover__trigger", t)
87
+ });
88
+ }
89
+ var C = n(function(e, t) {
90
+ return /* @__PURE__ */ a(s.Portal, {
91
+ ...e,
92
+ ref: t
93
+ });
94
+ }), w = n(function({ className: t, sideOffset: n = 10, ...r }, i) {
95
+ return /* @__PURE__ */ a(s.Positioner, {
96
+ ...r,
97
+ ref: i,
98
+ sideOffset: n,
99
+ className: e("lyds-popover__positioner", t)
100
+ });
101
+ }), T = n(function({ className: t, ...n }, r) {
102
+ return /* @__PURE__ */ a(s.Backdrop, {
103
+ ...n,
104
+ ref: r,
105
+ className: e("lyds-popover__backdrop", t)
106
+ });
107
+ }), E = n(function({ className: t, ...n }, r) {
108
+ return /* @__PURE__ */ a(s.Popup, {
109
+ ...n,
110
+ ref: r,
111
+ className: e("lyds-popover__popup", t)
112
+ });
113
+ }), D = n(function({ className: t, ...n }, r) {
114
+ return /* @__PURE__ */ a(s.Arrow, {
115
+ ...n,
116
+ ref: r,
117
+ className: e("lyds-popover__arrow", t)
118
+ });
119
+ }), O = n(function({ className: t, ...n }, r) {
120
+ return /* @__PURE__ */ a(s.Title, {
121
+ ...n,
122
+ ref: r,
123
+ className: e("lyds-popover__title", t)
124
+ });
125
+ }), k = n(function({ className: t, ...n }, r) {
126
+ return /* @__PURE__ */ a(s.Description, {
127
+ ...n,
128
+ ref: r,
129
+ className: e("lyds-popover__description", t)
130
+ });
131
+ }), A = n(function({ "aria-label": t, children: n, className: r, variant: i = n == null ? "icon" : "action", ...o }, c) {
132
+ return /* @__PURE__ */ a(s.Close, {
133
+ ...o,
134
+ ref: c,
135
+ "aria-label": t ?? (n == null ? "關閉彈出視窗" : void 0),
136
+ className: e(i === "icon" ? "lyds-overlayClose" : "lyds-overlayCloseAction", r),
137
+ children: n ?? /* @__PURE__ */ a(d, {})
138
+ });
139
+ }), j = n(function({ className: t, ...n }, r) {
140
+ return /* @__PURE__ */ a(s.Viewport, {
141
+ ...n,
142
+ ref: r,
143
+ className: e("lyds-popover__viewport", t)
144
+ });
145
+ }), M = {
146
+ Root: x,
147
+ Trigger: S,
148
+ Portal: C,
149
+ Positioner: w,
150
+ Backdrop: T,
151
+ Popup: E,
152
+ Arrow: D,
153
+ Title: O,
154
+ Description: k,
155
+ Close: A,
156
+ Viewport: j,
157
+ createHandle: s.createHandle,
158
+ Handle: s.Handle
159
+ };
160
+ function N(e) {
161
+ return /* @__PURE__ */ a(c.Root, { ...e });
162
+ }
163
+ function P({ className: t, ...n }) {
164
+ return /* @__PURE__ */ a(c.Trigger, {
165
+ ...n,
166
+ className: e("lyds-previewCard__trigger", t)
167
+ });
168
+ }
169
+ var F = n(function(e, t) {
170
+ return /* @__PURE__ */ a(c.Portal, {
171
+ ...e,
172
+ ref: t
173
+ });
174
+ }), I = n(function({ className: t, sideOffset: n = 10, ...r }, i) {
175
+ return /* @__PURE__ */ a(c.Positioner, {
176
+ ...r,
177
+ ref: i,
178
+ sideOffset: n,
179
+ className: e("lyds-previewCard__positioner", t)
180
+ });
181
+ }), L = n(function({ className: t, ...n }, r) {
182
+ return /* @__PURE__ */ a(c.Popup, {
183
+ ...n,
184
+ ref: r,
185
+ className: e("lyds-previewCard__popup", t)
186
+ });
187
+ }), R = n(function({ className: t, ...n }, r) {
188
+ return /* @__PURE__ */ a(c.Arrow, {
189
+ ...n,
190
+ ref: r,
191
+ className: e("lyds-previewCard__arrow", t)
192
+ });
193
+ }), z = n(function({ className: t, ...n }, r) {
194
+ return /* @__PURE__ */ a(c.Backdrop, {
195
+ ...n,
196
+ ref: r,
197
+ className: e("lyds-previewCard__backdrop", t)
198
+ });
199
+ }), B = n(function({ className: t, ...n }, r) {
200
+ return /* @__PURE__ */ a(c.Viewport, {
201
+ ...n,
202
+ ref: r,
203
+ className: e("lyds-previewCard__viewport", t)
204
+ });
205
+ }), V = {
206
+ Root: N,
207
+ Trigger: P,
208
+ Portal: F,
209
+ Positioner: I,
210
+ Popup: L,
211
+ Arrow: R,
212
+ Backdrop: z,
213
+ Viewport: B,
214
+ createHandle: c.createHandle,
215
+ Handle: c.Handle
216
+ };
217
+ //#endregion
218
+ export { M as Popover, D as PopoverArrow, T as PopoverBackdrop, A as PopoverClose, k as PopoverDescription, E as PopoverPopup, C as PopoverPortal, w as PopoverPositioner, x as PopoverRoot, O as PopoverTitle, S as PopoverTrigger, j as PopoverViewport, V as PreviewCard, R as PreviewCardArrow, z as PreviewCardBackdrop, L as PreviewCardPopup, F as PreviewCardPortal, I as PreviewCardPositioner, N as PreviewCardRoot, P as PreviewCardTrigger, B as PreviewCardViewport, b as Tooltip, v as TooltipArrow, _ as TooltipPopup, h as TooltipPortal, g as TooltipPositioner, f as TooltipProvider, p as TooltipRoot, m as TooltipTrigger, y as TooltipViewport };
219
+
220
+ //# sourceMappingURL=floating.js.map