@linyao.tw/ui 1.0.0 → 1.2.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.
Files changed (178) hide show
  1. package/README.md +9 -1
  2. package/dist/components/date-time/calendar.js +8 -6
  3. package/dist/components/date-time/calendar.js.map +1 -1
  4. package/dist/components/date-time/date-field.js +10 -8
  5. package/dist/components/date-time/date-field.js.map +1 -1
  6. package/dist/components/date-time/date-picker.js +8 -6
  7. package/dist/components/date-time/date-picker.js.map +1 -1
  8. package/dist/components/date-time/date-range-picker.js +8 -6
  9. package/dist/components/date-time/date-range-picker.js.map +1 -1
  10. package/dist/components/date-time/index.js +1 -1
  11. package/dist/components/date-time/shared.d.ts +0 -1
  12. package/dist/components/date-time/shared.js +7 -9
  13. package/dist/components/date-time/shared.js.map +1 -1
  14. package/dist/components/date-time/time-field.js +8 -6
  15. package/dist/components/date-time/time-field.js.map +1 -1
  16. package/dist/components/feedback/alert.js +35 -34
  17. package/dist/components/feedback/alert.js.map +1 -1
  18. package/dist/components/feedback/banner.js +15 -14
  19. package/dist/components/feedback/banner.js.map +1 -1
  20. package/dist/components/feedback/empty-state.d.ts +2 -1
  21. package/dist/components/feedback/empty-state.js +31 -31
  22. package/dist/components/feedback/empty-state.js.map +1 -1
  23. package/dist/components/feedback/feedback.types.d.ts +0 -1
  24. package/dist/components/feedback/feedback.types.js +3 -5
  25. package/dist/components/feedback/feedback.types.js.map +1 -1
  26. package/dist/components/feedback/index.d.ts +8 -8
  27. package/dist/components/feedback/meter.js +21 -21
  28. package/dist/components/feedback/meter.js.map +1 -1
  29. package/dist/components/feedback/progress.js +21 -21
  30. package/dist/components/feedback/progress.js.map +1 -1
  31. package/dist/components/feedback/skeleton.js +11 -11
  32. package/dist/components/feedback/skeleton.js.map +1 -1
  33. package/dist/components/feedback/spinner.js +25 -25
  34. package/dist/components/feedback/spinner.js.map +1 -1
  35. package/dist/components/feedback/toast.js +23 -21
  36. package/dist/components/feedback/toast.js.map +1 -1
  37. package/dist/components/forms/{CodeField.d.ts → code-field.d.ts} +1 -1
  38. package/dist/components/forms/code-field.js +66 -0
  39. package/dist/components/forms/code-field.js.map +1 -0
  40. package/dist/components/forms/{FileUpload.d.ts → file-upload.d.ts} +1 -1
  41. package/dist/components/forms/{FileUpload.js → file-upload.js} +128 -111
  42. package/dist/components/forms/file-upload.js.map +1 -0
  43. package/dist/components/forms/index.d.ts +6 -6
  44. package/dist/components/forms/{Input.js → input.js} +4 -3
  45. package/dist/components/forms/input.js.map +1 -0
  46. package/dist/components/forms/internal.d.ts +0 -2
  47. package/dist/components/forms/internal.js +22 -25
  48. package/dist/components/forms/internal.js.map +1 -1
  49. package/dist/components/forms/number-field.js +74 -0
  50. package/dist/components/forms/number-field.js.map +1 -0
  51. package/dist/components/forms/otp-field.js +58 -0
  52. package/dist/components/forms/otp-field.js.map +1 -0
  53. package/dist/components/forms/{TextField.d.ts → text-field.d.ts} +5 -0
  54. package/dist/components/forms/text-field.js +201 -0
  55. package/dist/components/forms/text-field.js.map +1 -0
  56. package/dist/components/foundations/{Avatar.js → avatar.js} +13 -10
  57. package/dist/components/foundations/avatar.js.map +1 -0
  58. package/dist/components/foundations/{Badge.d.ts → badge.d.ts} +1 -1
  59. package/dist/components/foundations/{Badge.js → badge.js} +4 -3
  60. package/dist/components/foundations/badge.js.map +1 -0
  61. package/dist/components/foundations/{Button.js → button.js} +4 -3
  62. package/dist/components/foundations/button.js.map +1 -0
  63. package/dist/components/foundations/{Card.d.ts → card.d.ts} +9 -2
  64. package/dist/components/foundations/{Card.js → card.js} +6 -5
  65. package/dist/components/foundations/card.js.map +1 -0
  66. package/dist/components/foundations/{IconButton.d.ts → icon-button.d.ts} +2 -8
  67. package/dist/components/foundations/{IconButton.js → icon-button.js} +5 -4
  68. package/dist/components/foundations/icon-button.js.map +1 -0
  69. package/dist/components/foundations/index.d.ts +9 -9
  70. package/dist/components/foundations/{Link.d.ts → link.d.ts} +1 -1
  71. package/dist/components/foundations/link.js +47 -0
  72. package/dist/components/foundations/link.js.map +1 -0
  73. package/dist/components/foundations/{ListCell.d.ts → list-cell.d.ts} +1 -8
  74. package/dist/components/foundations/{ListCell.js → list-cell.js} +4 -3
  75. package/dist/components/foundations/list-cell.js.map +1 -0
  76. package/dist/components/foundations/{SectionHeading.d.ts → section-heading.d.ts} +5 -2
  77. package/dist/components/foundations/{SectionHeading.js → section-heading.js} +4 -3
  78. package/dist/components/foundations/section-heading.js.map +1 -0
  79. package/dist/components/foundations/{Separator.js → separator.js} +4 -3
  80. package/dist/components/foundations/separator.js.map +1 -0
  81. package/dist/components/navigation-data/breadcrumb-pagination.js +89 -81
  82. package/dist/components/navigation-data/breadcrumb-pagination.js.map +1 -1
  83. package/dist/components/navigation-data/command-palette.d.ts +26 -0
  84. package/dist/components/navigation-data/command-palette.js +101 -72
  85. package/dist/components/navigation-data/command-palette.js.map +1 -1
  86. package/dist/components/navigation-data/header-tab-bar.js +50 -46
  87. package/dist/components/navigation-data/header-tab-bar.js.map +1 -1
  88. package/dist/components/navigation-data/index.d.ts +7 -7
  89. package/dist/components/navigation-data/menubar-toolbar.js +2 -1
  90. package/dist/components/navigation-data/menubar-toolbar.js.map +1 -1
  91. package/dist/components/navigation-data/navigation-menu.js +2 -1
  92. package/dist/components/navigation-data/navigation-menu.js.map +1 -1
  93. package/dist/components/navigation-data/scroll-area.js +2 -1
  94. package/dist/components/navigation-data/scroll-area.js.map +1 -1
  95. package/dist/components/navigation-data/table-collection.d.ts +12 -3
  96. package/dist/components/navigation-data/table-collection.js +12 -9
  97. package/dist/components/navigation-data/table-collection.js.map +1 -1
  98. package/dist/components/overlays/dialog.d.ts +23 -3
  99. package/dist/components/overlays/dialog.js +138 -130
  100. package/dist/components/overlays/dialog.js.map +1 -1
  101. package/dist/components/overlays/disclosure.js +2 -1
  102. package/dist/components/overlays/disclosure.js.map +1 -1
  103. package/dist/components/overlays/drawer.d.ts +9 -2
  104. package/dist/components/overlays/drawer.js +158 -151
  105. package/dist/components/overlays/drawer.js.map +1 -1
  106. package/dist/components/overlays/floating.js +116 -113
  107. package/dist/components/overlays/floating.js.map +1 -1
  108. package/dist/components/overlays/index.d.ts +4 -4
  109. package/dist/components/selection/combobox.js +94 -93
  110. package/dist/components/selection/combobox.js.map +1 -1
  111. package/dist/components/selection/controls.d.ts +4 -1
  112. package/dist/components/selection/controls.js +141 -118
  113. package/dist/components/selection/controls.js.map +1 -1
  114. package/dist/components/selection/menu.js +121 -121
  115. package/dist/components/selection/menu.js.map +1 -1
  116. package/dist/components/selection/select.js +108 -107
  117. package/dist/components/selection/select.js.map +1 -1
  118. package/dist/fonts.css +13 -0
  119. package/dist/index.d.ts +1 -0
  120. package/dist/index.js +39 -33
  121. package/dist/internal/accessible-name.d.ts +12 -0
  122. package/dist/internal/class-names.d.ts +12 -0
  123. package/dist/{components/selection/classnames.js → internal/class-names.js} +4 -3
  124. package/dist/internal/class-names.js.map +1 -0
  125. package/dist/internal/index.d.ts +3 -0
  126. package/dist/{components/foundations/shared.d.ts → internal/render.d.ts} +2 -1
  127. package/dist/intl/index.d.ts +3 -0
  128. package/dist/intl/linyao-provider.d.ts +38 -0
  129. package/dist/intl/linyao-provider.js +27 -0
  130. package/dist/intl/linyao-provider.js.map +1 -0
  131. package/dist/intl/messages.d.ts +48 -0
  132. package/dist/intl/messages.js +81 -0
  133. package/dist/intl/messages.js.map +1 -0
  134. package/dist/intl/provider.d.ts +18 -0
  135. package/dist/intl/provider.js +31 -0
  136. package/dist/intl/provider.js.map +1 -0
  137. package/dist/styles.css +1 -1
  138. package/package.json +6 -4
  139. package/dist/components/feedback/feedback.module.js +0 -42
  140. package/dist/components/feedback/feedback.module.js.map +0 -1
  141. package/dist/components/forms/CodeField.js +0 -63
  142. package/dist/components/forms/CodeField.js.map +0 -1
  143. package/dist/components/forms/FileUpload.js.map +0 -1
  144. package/dist/components/forms/Input.js.map +0 -1
  145. package/dist/components/forms/NumberField.js +0 -71
  146. package/dist/components/forms/NumberField.js.map +0 -1
  147. package/dist/components/forms/OTPField.js +0 -54
  148. package/dist/components/forms/OTPField.js.map +0 -1
  149. package/dist/components/forms/TextField.js +0 -199
  150. package/dist/components/forms/TextField.js.map +0 -1
  151. package/dist/components/foundations/Avatar.js.map +0 -1
  152. package/dist/components/foundations/Badge.js.map +0 -1
  153. package/dist/components/foundations/Button.js.map +0 -1
  154. package/dist/components/foundations/Card.js.map +0 -1
  155. package/dist/components/foundations/IconButton.js.map +0 -1
  156. package/dist/components/foundations/Link.js +0 -40
  157. package/dist/components/foundations/Link.js.map +0 -1
  158. package/dist/components/foundations/ListCell.js.map +0 -1
  159. package/dist/components/foundations/SectionHeading.js.map +0 -1
  160. package/dist/components/foundations/Separator.js.map +0 -1
  161. package/dist/components/foundations/shared.js +0 -8
  162. package/dist/components/foundations/shared.js.map +0 -1
  163. package/dist/components/navigation-data/utils.d.ts +0 -2
  164. package/dist/components/navigation-data/utils.js +0 -11
  165. package/dist/components/navigation-data/utils.js.map +0 -1
  166. package/dist/components/overlays/class-names.d.ts +0 -6
  167. package/dist/components/overlays/class-names.js +0 -11
  168. package/dist/components/overlays/class-names.js.map +0 -1
  169. package/dist/components/selection/classnames.d.ts +0 -4
  170. package/dist/components/selection/classnames.js.map +0 -1
  171. package/dist/components/selection/selection.module.js +0 -51
  172. package/dist/components/selection/selection.module.js.map +0 -1
  173. /package/dist/components/forms/{Input.d.ts → input.d.ts} +0 -0
  174. /package/dist/components/forms/{NumberField.d.ts → number-field.d.ts} +0 -0
  175. /package/dist/components/forms/{OTPField.d.ts → otp-field.d.ts} +0 -0
  176. /package/dist/components/foundations/{Avatar.d.ts → avatar.d.ts} +0 -0
  177. /package/dist/components/foundations/{Button.d.ts → button.d.ts} +0 -0
  178. /package/dist/components/foundations/{Separator.d.ts → separator.d.ts} +0 -0
@@ -1,4 +1,5 @@
1
- import { ComponentRenderProp, ElementProps } from './shared.js';
1
+ import { ComponentRenderProp, ElementProps } from '../../internal/index.js';
2
+ import { HeadingLevel } from './section-heading.js';
2
3
  import * as React from "react";
3
4
  export type CardVariant = "material" | "elevated" | "inset" | "outline" | "cloud";
4
5
  export type CardSize = "sm" | "md" | "lg";
@@ -24,10 +25,16 @@ export declare const CardHeader: React.ForwardRefExoticComponent<Omit<ElementPro
24
25
  children: React.ReactNode;
25
26
  render?: ComponentRenderProp<Record<string, unknown>>;
26
27
  } & React.RefAttributes<HTMLDivElement>>;
27
- export type CardTitleProps = CardSlotProps<"h3">;
28
+ export type CardTitleProps = CardSlotProps<"h3"> & {
29
+ /** Heading level for the surrounding document outline. Cards nest, so this is rarely h3. */
30
+ level?: HeadingLevel;
31
+ };
28
32
  export declare const CardTitle: React.ForwardRefExoticComponent<Omit<ElementProps<"h3">, "children"> & {
29
33
  children: React.ReactNode;
30
34
  render?: ComponentRenderProp<Record<string, unknown>>;
35
+ } & {
36
+ /** Heading level for the surrounding document outline. Cards nest, so this is rarely h3. */
37
+ level?: HeadingLevel;
31
38
  } & React.RefAttributes<HTMLHeadingElement>>;
32
39
  export type CardDescriptionProps = CardSlotProps<"p">;
33
40
  export declare const CardDescription: React.ForwardRefExoticComponent<Omit<ElementProps<"p">, "children"> & {
@@ -1,8 +1,9 @@
1
- import { mergeClassNames as e } from "./shared.js";
1
+ "use client";
2
+ import { cx as e } from "../../internal/class-names.js";
2
3
  import * as t from "react";
3
4
  import { jsx as n } from "react/jsx-runtime";
4
5
  import { useRender as r } from "@base-ui/react/use-render";
5
- //#region src/components/foundations/Card.tsx
6
+ //#region src/components/foundations/card.tsx
6
7
  var i = t.forwardRef(function({ children: t, variant: n = "material", size: i = "md", render: a, className: o, ...s }, c) {
7
8
  return r({
8
9
  defaultTagName: "div",
@@ -42,8 +43,8 @@ function o(t, n, i, a, o, s, c) {
42
43
  }
43
44
  var s = t.forwardRef(function({ children: e, render: t, className: n, ...r }, i) {
44
45
  return o("div", "header", e, t, n, r, i);
45
- }), c = t.forwardRef(function({ children: e, render: t, className: n, ...r }, i) {
46
- return o("h3", "title", e, t, n, r, i);
46
+ }), c = t.forwardRef(function({ children: e, level: t = 3, render: n, className: r, ...i }, a) {
47
+ return o(`h${t}`, "title", e, n, r, i, a);
47
48
  }), l = t.forwardRef(function({ children: e, render: t, className: n, ...r }, i) {
48
49
  return o("p", "description", e, t, n, r, i);
49
50
  }), u = t.forwardRef(function({ children: e, render: t, className: n, ...r }, i) {
@@ -54,4 +55,4 @@ var s = t.forwardRef(function({ children: e, render: t, className: n, ...r }, i)
54
55
  //#endregion
55
56
  export { i as Card, u as CardBody, l as CardDescription, d as CardFooter, s as CardHeader, c as CardTitle, a as CloudBox };
56
57
 
57
- //# sourceMappingURL=Card.js.map
58
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","names":[],"sources":["../../../src/components/foundations/card.tsx"],"sourcesContent":["import { type ComponentRenderProp, cx, type ElementProps } from \"@/internal\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport * as React from \"react\";\nimport type { HeadingLevel } from \"./section-heading\";\nexport type CardVariant = \"material\" | \"elevated\" | \"inset\" | \"outline\" | \"cloud\";\nexport type CardSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface CardState extends Record<string, unknown> {\n\tsize: CardSize;\n\tvariant: CardVariant;\n}\n\nexport interface CardProps extends Omit<ElementProps<\"div\">, \"children\"> {\n\tchildren: React.ReactNode;\n\tvariant?: CardVariant;\n\tsize?: CardSize;\n\trender?: ComponentRenderProp<CardState>;\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(function Card({ children, variant = \"material\", size = \"md\", render, className, ...props }, ref) {\n\treturn useRender<CardState, HTMLDivElement>({\n\t\tdefaultTagName: \"div\",\n\t\tref,\n\t\trender,\n\t\tstate: { size, variant },\n\t\tprops: {\n\t\t\t...props,\n\t\t\tchildren,\n\t\t\tclassName: cx(\"lyds-card\", className)\n\t\t}\n\t});\n});\n\nCard.displayName = \"Card\";\n\nexport type CloudBoxProps = Omit<CardProps, \"variant\">;\n\nexport const CloudBox = React.forwardRef<HTMLDivElement, CloudBoxProps>(function CloudBox(props, ref) {\n\treturn <Card {...props} ref={ref} variant=\"cloud\" />;\n});\n\nCloudBox.displayName = \"CloudBox\";\n\ntype CardSlotProps<ElementType extends React.ElementType> = Omit<ElementProps<ElementType>, \"children\"> & {\n\tchildren: React.ReactNode;\n\trender?: ComponentRenderProp<Record<string, unknown>>;\n};\n\nfunction useCardSlot<Element extends HTMLElement>(\n\tdefaultTagName: keyof React.JSX.IntrinsicElements,\n\tslotName: string,\n\tchildren: React.ReactNode,\n\trender: ComponentRenderProp<Record<string, unknown>> | undefined,\n\tclassName: string | undefined,\n\tprops: Record<string, unknown>,\n\tref: React.ForwardedRef<Element>\n) {\n\treturn useRender<Record<string, unknown>, Element>({\n\t\tdefaultTagName,\n\t\tref,\n\t\trender,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tchildren,\n\t\t\tclassName: cx(`lyds-card__${slotName}`, className)\n\t\t}\n\t});\n}\n\nexport type CardHeaderProps = CardSlotProps<\"div\">;\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(function CardHeader({ children, render, className, ...props }, ref) {\n\treturn useCardSlot(\"div\", \"header\", children, render, className, props, ref);\n});\n\nexport type CardTitleProps = CardSlotProps<\"h3\"> & {\n\t/** Heading level for the surrounding document outline. Cards nest, so this is rarely h3. */\n\tlevel?: HeadingLevel;\n};\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(function CardTitle({ children, level = 3, render, className, ...props }, ref) {\n\treturn useCardSlot(`h${level}` as const, \"title\", children, render, className, props, ref);\n});\n\nexport type CardDescriptionProps = CardSlotProps<\"p\">;\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(function CardDescription({ children, render, className, ...props }, ref) {\n\treturn useCardSlot(\"p\", \"description\", children, render, className, props, ref);\n});\n\nexport type CardBodyProps = CardSlotProps<\"div\">;\nexport const CardBody = React.forwardRef<HTMLDivElement, CardBodyProps>(function CardBody({ children, render, className, ...props }, ref) {\n\treturn useCardSlot(\"div\", \"body\", children, render, className, props, ref);\n});\n\nexport type CardFooterProps = CardSlotProps<\"div\">;\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(function CardFooter({ children, render, className, ...props }, ref) {\n\treturn useCardSlot(\"div\", \"footer\", children, render, className, props, ref);\n});\n"],"mappings":";;;;;;AAmBA,IAAa,IAAO,EAAM,WAAsC,SAAc,EAAE,aAAU,aAAU,YAAY,UAAO,MAAM,WAAQ,cAAW,GAAG,KAAS,GAAK;CAChK,OAAO,EAAqC;EAC3C,gBAAgB;EAChB;EACA;EACA,OAAO;GAAE;GAAM;EAAQ;EACvB,OAAO;GACN,GAAG;GACH;GACA,WAAW,EAAG,aAAa,CAAS;EACrC;CACD,CAAC;AACF,CAAC;AAED,EAAK,cAAc;AAInB,IAAa,IAAW,EAAM,WAA0C,SAAkB,GAAO,GAAK;CACrG,OAAO,kBAAC,GAAD;EAAM,GAAI;EAAY;EAAK,SAAQ;CAAS,CAAA;AACpD,CAAC;AAED,EAAS,cAAc;AAOvB,SAAS,EACR,GACA,GACA,GACA,GACA,GACA,GACA,GACC;CACD,OAAO,EAA4C;EAClD;EACA;EACA;EACA,OAAO;GACN,GAAG;GACH;GACA,WAAW,EAAG,cAAc,KAAY,CAAS;EAClD;CACD,CAAC;AACF;AAGA,IAAa,IAAa,EAAM,WAA4C,SAAoB,EAAE,aAAU,WAAQ,cAAW,GAAG,KAAS,GAAK;CAC/I,OAAO,EAAY,OAAO,UAAU,GAAU,GAAQ,GAAW,GAAO,CAAG;AAC5E,CAAC,GAOY,IAAY,EAAM,WAA+C,SAAmB,EAAE,aAAU,WAAQ,GAAG,WAAQ,cAAW,GAAG,KAAS,GAAK;CAC3J,OAAO,EAAY,IAAI,KAAkB,SAAS,GAAU,GAAQ,GAAW,GAAO,CAAG;AAC1F,CAAC,GAGY,IAAkB,EAAM,WAAuD,SAAyB,EAAE,aAAU,WAAQ,cAAW,GAAG,KAAS,GAAK;CACpK,OAAO,EAAY,KAAK,eAAe,GAAU,GAAQ,GAAW,GAAO,CAAG;AAC/E,CAAC,GAGY,IAAW,EAAM,WAA0C,SAAkB,EAAE,aAAU,WAAQ,cAAW,GAAG,KAAS,GAAK;CACzI,OAAO,EAAY,OAAO,QAAQ,GAAU,GAAQ,GAAW,GAAO,CAAG;AAC1E,CAAC,GAGY,IAAa,EAAM,WAA4C,SAAoB,EAAE,aAAU,WAAQ,cAAW,GAAG,KAAS,GAAK;CAC/I,OAAO,EAAY,OAAO,UAAU,GAAU,GAAQ,GAAW,GAAO,CAAG;AAC5E,CAAC"}
@@ -1,12 +1,6 @@
1
- import { ButtonProps } from './Button.js';
1
+ import { AccessibleName } from '../../internal/index.js';
2
+ import { ButtonProps } from './button.js';
2
3
  import * as React from "react";
3
- type AccessibleName = {
4
- "aria-label": string;
5
- "aria-labelledby"?: string;
6
- } | {
7
- "aria-label"?: string;
8
- "aria-labelledby": string;
9
- };
10
4
  type IconButtonBaseProps = Omit<ButtonProps, "aria-label" | "aria-labelledby" | "children" | "endIcon" | "startIcon"> & {
11
5
  children: React.ReactNode;
12
6
  };
@@ -1,8 +1,9 @@
1
- import { mergeClassNames as e } from "./shared.js";
2
- import { Button as t } from "./Button.js";
1
+ "use client";
2
+ import { cx as e } from "../../internal/class-names.js";
3
+ import { Button as t } from "./button.js";
3
4
  import * as n from "react";
4
5
  import { jsx as r } from "react/jsx-runtime";
5
- //#region src/components/foundations/IconButton.tsx
6
+ //#region src/components/foundations/icon-button.tsx
6
7
  var i = n.forwardRef(function({ children: n, className: i, loading: a = !1, ...o }, s) {
7
8
  return /* @__PURE__ */ r(t, {
8
9
  ...o,
@@ -16,4 +17,4 @@ i.displayName = "IconButton";
16
17
  //#endregion
17
18
  export { i as IconButton };
18
19
 
19
- //# sourceMappingURL=IconButton.js.map
20
+ //# sourceMappingURL=icon-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-button.js","names":[],"sources":["../../../src/components/foundations/icon-button.tsx"],"sourcesContent":["import { type AccessibleName, cx } from \"@/internal\";\nimport * as React from \"react\";\nimport { Button, type ButtonProps } from \"./button\";\ntype IconButtonBaseProps = Omit<ButtonProps, \"aria-label\" | \"aria-labelledby\" | \"children\" | \"endIcon\" | \"startIcon\"> & {\n\tchildren: React.ReactNode;\n};\n\nexport type IconButtonProps = IconButtonBaseProps & AccessibleName;\n\nexport const IconButton = React.forwardRef<HTMLElement, IconButtonProps>(function IconButton({ children, className, loading = false, ...props }, ref) {\n\treturn (\n\t\t<Button {...props} ref={ref} className={cx(\"lyds-icon-button\", className)} loading={loading}>\n\t\t\t{loading ? null : children}\n\t\t</Button>\n\t);\n});\n\nIconButton.displayName = \"IconButton\";\n"],"mappings":";;;;;;AASA,IAAa,IAAa,EAAM,WAAyC,SAAoB,EAAE,aAAU,cAAW,aAAU,IAAO,GAAG,KAAS,GAAK;CACrJ,OACC,kBAAC,GAAD;EAAQ,GAAI;EAAY;EAAK,WAAW,EAAG,oBAAoB,CAAS;EAAY;EAClF,UAAA,IAAU,OAAO;CACX,CAAA;AAEV,CAAC;AAED,EAAW,cAAc"}
@@ -1,9 +1,9 @@
1
- export * from './Avatar.js';
2
- export * from './Badge.js';
3
- export * from './Button.js';
4
- export * from './Card.js';
5
- export * from './IconButton.js';
6
- export * from './Link.js';
7
- export * from './ListCell.js';
8
- export * from './SectionHeading.js';
9
- export * from './Separator.js';
1
+ export { Avatar, type AvatarBaseProps, type AvatarProps, type AvatarSize, type AvatarStatus, type AvatarVariant } from './avatar.js';
2
+ export { Badge, type BadgeProps, type BadgeSize, type BadgeState, type BadgeVariant } from './badge.js';
3
+ export { Button, type ButtonProps, type ButtonSize, type ButtonVariant } from './button.js';
4
+ export { Card, CardBody, CardDescription, CardFooter, CardHeader, CardTitle, CloudBox, type CardBodyProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardProps, type CardSize, type CardState, type CardTitleProps, type CardVariant, type CloudBoxProps } from './card.js';
5
+ export { IconButton, type IconButtonProps } from './icon-button.js';
6
+ export { Link, type LinkProps, type LinkSize, type LinkState, type LinkVariant } from './link.js';
7
+ export { ListCell, ListCellAction, ListCellContent, ListCellDescription, ListCellLeading, ListCellMetadata, ListCellTitle, ListCellTrailing, type ListCellActionProps, type ListCellCurrentSemantics, type ListCellProps, type ListCellSize, type ListCellState, type ListCellVariant } from './list-cell.js';
8
+ export { SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, type SectionHeadingSize, type SectionHeadingState } from './section-heading.js';
9
+ export { Separator, type SeparatorProps, type SeparatorSpacing, type SeparatorVariant } from './separator.js';
@@ -1,4 +1,4 @@
1
- import { ComponentRenderProp, ElementProps } from './shared.js';
1
+ import { ComponentRenderProp, ElementProps } from '../../internal/index.js';
2
2
  import * as React from "react";
3
3
  export type LinkVariant = "default" | "accent" | "subtle";
4
4
  export type LinkSize = "sm" | "md" | "lg";
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { cx as e } from "../../internal/class-names.js";
3
+ import { useMessages as t } from "../../intl/provider.js";
4
+ import * as n from "react";
5
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ import { useRender as o } from "@base-ui/react/use-render";
7
+ //#region src/components/foundations/link.tsx
8
+ var s = n.forwardRef(function({ children: n, variant: s = "default", size: c = "md", disabled: l = !1, external: u = !1, render: d, className: f, href: p, target: m, rel: h, onClick: g, ..._ }, v) {
9
+ let y = t(), b = {
10
+ disabled: l,
11
+ external: u,
12
+ size: c,
13
+ variant: s
14
+ }, x = m === "_blank" && !h ? "noopener noreferrer" : h, S = !l && m === "_blank";
15
+ return o({
16
+ defaultTagName: "a",
17
+ ref: v,
18
+ render: l ? void 0 : d,
19
+ state: b,
20
+ props: {
21
+ ..._,
22
+ children: S ? /* @__PURE__ */ a(r, { children: [n, /* @__PURE__ */ i("span", {
23
+ className: "lyds-sr-only",
24
+ children: y.linkOpensInNewWindow
25
+ })] }) : n,
26
+ href: l ? void 0 : p,
27
+ target: m,
28
+ rel: x,
29
+ "aria-disabled": l || void 0,
30
+ "data-external": u || void 0,
31
+ tabIndex: l ? -1 : _.tabIndex,
32
+ className: e("lyds-link", f),
33
+ onClick: (e) => {
34
+ if (l) {
35
+ e.preventDefault(), e.stopPropagation();
36
+ return;
37
+ }
38
+ g?.(e);
39
+ }
40
+ }
41
+ });
42
+ });
43
+ s.displayName = "Link";
44
+ //#endregion
45
+ export { s as Link };
46
+
47
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","names":[],"sources":["../../../src/components/foundations/link.tsx"],"sourcesContent":["import { type ComponentRenderProp, cx, type ElementProps } from \"@/internal\";\nimport { useMessages } from \"@/intl\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport * as React from \"react\";\nexport type LinkVariant = \"default\" | \"accent\" | \"subtle\";\nexport type LinkSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface LinkState extends Record<string, unknown> {\n\tdisabled: boolean;\n\texternal: boolean;\n\tsize: LinkSize;\n\tvariant: LinkVariant;\n}\n\nexport interface LinkProps extends Omit<ElementProps<\"a\">, \"children\"> {\n\tchildren: React.ReactNode;\n\tvariant?: LinkVariant;\n\tsize?: LinkSize;\n\tdisabled?: boolean;\n\texternal?: boolean;\n\trender?: ComponentRenderProp<LinkState>;\n}\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n\t{ children, variant = \"default\", size = \"md\", disabled = false, external = false, render, className, href, target, rel, onClick, ...props },\n\tref\n) {\n\tconst messages = useMessages();\n\tconst state: LinkState = { disabled, external, size, variant };\n\tconst secureRel = target === \"_blank\" && !rel ? \"noopener noreferrer\" : rel;\n\t// The warning belongs to what the link actually does, not to the decorative flag: a link is\n\t// only unexpected when it really opens a new window.\n\tconst opensNewWindow = !disabled && target === \"_blank\";\n\n\treturn useRender<LinkState, HTMLAnchorElement>({\n\t\tdefaultTagName: \"a\",\n\t\tref,\n\t\t// 多型 `render` 函式或路由元件可能重新加入導覽行為。\n\t\t// 停用時改用無互動的原生連結,確保元件契約成立。\n\t\trender: disabled ? undefined : render,\n\t\tstate,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tchildren: opensNewWindow ? (\n\t\t\t\t<>\n\t\t\t\t\t{children}\n\t\t\t\t\t<span className=\"lyds-sr-only\">{messages.linkOpensInNewWindow}</span>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t),\n\t\t\thref: disabled ? undefined : href,\n\t\t\ttarget,\n\t\t\trel: secureRel,\n\t\t\t\"aria-disabled\": disabled || undefined,\n\t\t\t\"data-external\": external || undefined,\n\t\t\ttabIndex: disabled ? -1 : props.tabIndex,\n\t\t\tclassName: cx(\"lyds-link\", className),\n\t\t\tonClick: (event: React.MouseEvent<HTMLAnchorElement>) => {\n\t\t\t\tif (disabled) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tonClick?.(event);\n\t\t\t}\n\t\t}\n\t});\n});\n\nLink.displayName = \"Link\";\n"],"mappings":";;;;;;;AAuBA,IAAa,IAAO,EAAM,WAAyC,SAClE,EAAE,aAAU,aAAU,WAAW,UAAO,MAAM,cAAW,IAAO,cAAW,IAAO,WAAQ,cAAW,SAAM,WAAQ,QAAK,YAAS,GAAG,KACpI,GACC;CACD,IAAM,IAAW,EAAY,GACvB,IAAmB;EAAE;EAAU;EAAU;EAAM;CAAQ,GACvD,IAAY,MAAW,YAAY,CAAC,IAAM,wBAAwB,GAGlE,IAAiB,CAAC,KAAY,MAAW;CAE/C,OAAO,EAAwC;EAC9C,gBAAgB;EAChB;EAGA,QAAQ,IAAW,KAAA,IAAY;EAC/B;EACA,OAAO;GACN,GAAG;GACH,UAAU,IACT,kBAAA,GAAA,EAAA,UAAA,CACE,GACD,kBAAC,QAAD;IAAM,WAAU;IAAgB,UAAA,EAAS;GAA2B,CAAA,CACnE,EAAA,CAAA,IAEF;GAED,MAAM,IAAW,KAAA,IAAY;GAC7B;GACA,KAAK;GACL,iBAAiB,KAAY,KAAA;GAC7B,iBAAiB,KAAY,KAAA;GAC7B,UAAU,IAAW,KAAK,EAAM;GAChC,WAAW,EAAG,aAAa,CAAS;GACpC,UAAU,MAA+C;IACxD,IAAI,GAAU;KAEb,AADA,EAAM,eAAe,GACrB,EAAM,gBAAgB;KACtB;IACD;IAEA,IAAU,CAAK;GAChB;EACD;CACD,CAAC;AACF,CAAC;AAED,EAAK,cAAc"}
@@ -1,4 +1,4 @@
1
- import { ComponentRenderProp, ElementProps } from './shared.js';
1
+ import { AccessibleName, ComponentRenderProp, ElementProps } from '../../internal/index.js';
2
2
  import * as React from "react";
3
3
  export type ListCellVariant = "default" | "inset";
4
4
  export type ListCellSize = "sm" | "md" | "lg";
@@ -35,13 +35,6 @@ export type ListCellProps = Omit<ElementProps<"div">, "children" | "title"> & Li
35
35
  disabled?: boolean;
36
36
  render?: ComponentRenderProp<ListCellState>;
37
37
  };
38
- type AccessibleName = {
39
- "aria-label": string;
40
- "aria-labelledby"?: string;
41
- } | {
42
- "aria-label"?: string;
43
- "aria-labelledby": string;
44
- };
45
38
  type ListCellLinkActionProps = Omit<ElementProps<"a">, "aria-label" | "aria-labelledby" | "children" | "className"> & {
46
39
  href: string;
47
40
  className?: string;
@@ -1,8 +1,9 @@
1
- import { mergeClassNames as e } from "./shared.js";
1
+ "use client";
2
+ import { cx as e } from "../../internal/class-names.js";
2
3
  import * as t from "react";
3
4
  import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
5
  import { useRender as a } from "@base-ui/react/use-render";
5
- //#region src/components/foundations/ListCell.tsx
6
+ //#region src/components/foundations/list-cell.tsx
6
7
  var o = t.createContext({
7
8
  current: void 0,
8
9
  disabled: !1
@@ -102,4 +103,4 @@ var u = l("leading"), d = l("content"), f = l("title"), p = l("description"), m
102
103
  //#endregion
103
104
  export { c as ListCell, s as ListCellAction, d as ListCellContent, p as ListCellDescription, u as ListCellLeading, m as ListCellMetadata, f as ListCellTitle, h as ListCellTrailing };
104
105
 
105
- //# sourceMappingURL=ListCell.js.map
106
+ //# sourceMappingURL=list-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-cell.js","names":[],"sources":["../../../src/components/foundations/list-cell.tsx"],"sourcesContent":["import { type AccessibleName, type ComponentRenderProp, cx, type ElementProps } from \"@/internal\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport * as React from \"react\";\nexport type ListCellVariant = \"default\" | \"inset\";\nexport type ListCellSize = \"sm\" | \"md\" | \"lg\";\nexport type ListCellCurrentSemantics = \"page\" | \"step\" | \"location\" | \"date\" | \"time\";\n\nexport interface ListCellState extends Record<string, unknown> {\n\tdisabled: boolean;\n\tinteractive: boolean;\n\tselected: boolean;\n\tsize: ListCellSize;\n\tvariant: ListCellVariant;\n}\n\ntype ListCellSelectionProps =\n\t| {\n\t\t\tselected?: never;\n\t\t\tselectionSemantics?: never;\n\t }\n\t| {\n\t\t\tselected: boolean;\n\t\t\tselectionSemantics: ListCellCurrentSemantics;\n\t }\n\t| {\n\t\t\tselected: boolean;\n\t\t\tselectionSemantics: \"selected\";\n\t\t\trole: \"gridcell\" | \"option\" | \"row\" | \"tab\" | \"treeitem\";\n\t };\n\nexport type ListCellProps = Omit<ElementProps<\"div\">, \"children\" | \"title\"> &\n\tListCellSelectionProps & {\n\t\tchildren?: React.ReactNode;\n\t\tleading?: React.ReactNode;\n\t\ttitle?: React.ReactNode;\n\t\tdescription?: React.ReactNode;\n\t\tmetadata?: React.ReactNode;\n\t\ttrailing?: React.ReactNode;\n\t\taction?: ListCellActionProps;\n\t\tactionRef?: React.Ref<HTMLElement>;\n\t\tvariant?: ListCellVariant;\n\t\tsize?: ListCellSize;\n\t\tdisabled?: boolean;\n\t\trender?: ComponentRenderProp<ListCellState>;\n\t};\n\ninterface ListCellContextValue {\n\tcurrent: ListCellCurrentSemantics | false | undefined;\n\tdisabled: boolean;\n}\n\nconst ListCellContext = React.createContext<ListCellContextValue>({ current: undefined, disabled: false });\n\ntype ListCellLinkActionProps = Omit<ElementProps<\"a\">, \"aria-label\" | \"aria-labelledby\" | \"children\" | \"className\"> & {\n\thref: string;\n\tclassName?: string;\n\tdisabled?: boolean;\n};\n\ntype ListCellButtonActionProps = Omit<ElementProps<\"button\">, \"aria-label\" | \"aria-labelledby\" | \"children\" | \"className\" | \"href\"> & {\n\thref?: never;\n\tclassName?: string;\n\tdisabled?: boolean;\n};\n\nexport type ListCellActionProps = AccessibleName & (ListCellLinkActionProps | ListCellButtonActionProps);\n\nexport const ListCellAction = React.forwardRef<HTMLElement, ListCellActionProps>(function ListCellAction(props, ref) {\n\tconst context = React.useContext(ListCellContext);\n\tconst disabled = context.disabled || props.disabled === true;\n\n\tif (\"href\" in props && props.href !== undefined) {\n\t\tconst { className, href, onClick, rel, target, ...linkProps } = props;\n\t\treturn (\n\t\t\t<a\n\t\t\t\t{...linkProps}\n\t\t\t\tref={ref as React.Ref<HTMLAnchorElement>}\n\t\t\t\thref={disabled ? undefined : href}\n\t\t\t\ttarget={target}\n\t\t\t\trel={target === \"_blank\" && !rel ? \"noopener noreferrer\" : rel}\n\t\t\t\taria-current={props[\"aria-current\"] ?? context.current}\n\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\ttabIndex={disabled ? -1 : linkProps.tabIndex}\n\t\t\t\tclassName={cx(\"lyds-list-cell__action\", className)}\n\t\t\t\tonClick={event => {\n\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<span className=\"lyds-sr-only\">{props[\"aria-label\"] ?? \"\"}</span>\n\t\t\t</a>\n\t\t);\n\t}\n\n\tconst { className, onClick, type, ...buttonProps } = props;\n\treturn (\n\t\t<button\n\t\t\t{...buttonProps}\n\t\t\tref={ref as React.Ref<HTMLButtonElement>}\n\t\t\ttype={type ?? \"button\"}\n\t\t\tdisabled={disabled}\n\t\t\taria-current={props[\"aria-current\"] ?? context.current}\n\t\t\tclassName={cx(\"lyds-list-cell__action\", className)}\n\t\t\tonClick={onClick}\n\t\t/>\n\t);\n});\n\nListCellAction.displayName = \"ListCellAction\";\n\nexport const ListCell = React.forwardRef<HTMLElement, ListCellProps>(function ListCell(\n\t{\n\t\tchildren,\n\t\tleading,\n\t\ttitle,\n\t\tdescription,\n\t\tmetadata,\n\t\ttrailing,\n\t\taction,\n\t\tactionRef,\n\t\tvariant = \"default\",\n\t\tsize = \"md\",\n\t\tselected = false,\n\t\tselectionSemantics,\n\t\tdisabled = false,\n\t\trender,\n\t\tclassName,\n\t\t...props\n\t},\n\tref\n) {\n\tconst interactive = action != null;\n\tconst state: ListCellState = { disabled, interactive, selected, size, variant };\n\tconst slotContent = children ?? (\n\t\t<>\n\t\t\t{leading != null ? <ListCellLeading>{leading}</ListCellLeading> : null}\n\t\t\t<ListCellContent>\n\t\t\t\t{title != null ? <ListCellTitle>{title}</ListCellTitle> : null}\n\t\t\t\t{description != null ? <ListCellDescription>{description}</ListCellDescription> : null}\n\t\t\t</ListCellContent>\n\t\t\t{metadata != null ? <ListCellMetadata>{metadata}</ListCellMetadata> : null}\n\t\t\t{trailing != null ? <ListCellTrailing>{trailing}</ListCellTrailing> : null}\n\t\t</>\n\t);\n\tconst currentSemantics = selectionSemantics && selectionSemantics !== \"selected\" ? selectionSemantics : undefined;\n\tconst current = currentSemantics ? (selected ? currentSemantics : false) : undefined;\n\n\treturn useRender<ListCellState, HTMLElement>({\n\t\tdefaultTagName: \"div\",\n\t\tref,\n\t\trender,\n\t\tstate,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: cx(\"lyds-list-cell\", className),\n\t\t\t\"aria-current\": !action && current !== undefined ? current : props[\"aria-current\"],\n\t\t\t\"aria-disabled\": !action && disabled ? true : props[\"aria-disabled\"],\n\t\t\t\"aria-selected\": selectionSemantics === \"selected\" ? selected : props[\"aria-selected\"],\n\t\t\tchildren: (\n\t\t\t\t<ListCellContext.Provider value={{ current, disabled }}>\n\t\t\t\t\t{action ? <ListCellAction ref={actionRef} {...action} /> : null}\n\t\t\t\t\t{slotContent}\n\t\t\t\t</ListCellContext.Provider>\n\t\t\t)\n\t\t}\n\t});\n});\n\nListCell.displayName = \"ListCell\";\n\ntype ListCellSlotName = \"leading\" | \"content\" | \"title\" | \"description\" | \"metadata\" | \"trailing\";\n\ninterface ListCellSlotProps extends Omit<ElementProps<\"span\">, \"children\"> {\n\tchildren: React.ReactNode;\n\trender?: ComponentRenderProp<Record<string, unknown>>;\n}\n\nfunction createListCellSlot(slotName: ListCellSlotName) {\n\tconst Slot = React.forwardRef<HTMLElement, ListCellSlotProps>(function ListCellSlot({ children, render, className, ...props }, ref) {\n\t\treturn useRender<Record<string, unknown>, HTMLElement>({\n\t\t\tdefaultTagName: \"span\",\n\t\t\tref,\n\t\t\trender,\n\t\t\tprops: {\n\t\t\t\t...props,\n\t\t\t\tchildren,\n\t\t\t\tclassName: cx(`lyds-list-cell__${slotName}`, className)\n\t\t\t}\n\t\t});\n\t});\n\n\tSlot.displayName = `ListCell${slotName[0]?.toUpperCase() ?? \"\"}${slotName.slice(1)}`;\n\treturn Slot;\n}\n\nexport const ListCellLeading = createListCellSlot(\"leading\");\nexport const ListCellContent = createListCellSlot(\"content\");\nexport const ListCellTitle = createListCellSlot(\"title\");\nexport const ListCellDescription = createListCellSlot(\"description\");\nexport const ListCellMetadata = createListCellSlot(\"metadata\");\nexport const ListCellTrailing = createListCellSlot(\"trailing\");\n"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
- import { ComponentRenderProp, ElementProps } from './shared.js';
1
+ import { ComponentRenderProp, ElementProps } from '../../internal/index.js';
2
2
  import * as React from "react";
3
3
  export type SectionHeadingSize = "sm" | "md" | "lg";
4
- export type SectionHeadingLevel = 2 | 3 | 4 | 5 | 6;
4
+ /** Heading levels a component may render. h1 is the page's, so components never take it. */
5
+ export type HeadingLevel = 2 | 3 | 4 | 5 | 6;
6
+ /** @deprecated Use `HeadingLevel`, which every component that renders a heading now shares. */
7
+ export type SectionHeadingLevel = HeadingLevel;
5
8
  export interface SectionHeadingState extends Record<string, unknown> {
6
9
  size: SectionHeadingSize;
7
10
  }
@@ -1,8 +1,9 @@
1
- import { mergeClassNames as e } from "./shared.js";
1
+ "use client";
2
+ import { cx as e } from "../../internal/class-names.js";
2
3
  import * as t from "react";
3
4
  import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
5
  import { useRender as a } from "@base-ui/react/use-render";
5
- //#region src/components/foundations/SectionHeading.tsx
6
+ //#region src/components/foundations/section-heading.tsx
6
7
  var o = t.forwardRef(function({ children: t, annotation: o, description: s, action: c, level: l = 2, size: u = "md", render: d, className: f, ...p }, m) {
7
8
  let h = `h${l}`;
8
9
  return a({
@@ -47,4 +48,4 @@ o.displayName = "SectionHeading";
47
48
  //#endregion
48
49
  export { o as SectionHeading };
49
50
 
50
- //# sourceMappingURL=SectionHeading.js.map
51
+ //# sourceMappingURL=section-heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-heading.js","names":[],"sources":["../../../src/components/foundations/section-heading.tsx"],"sourcesContent":["import { type ComponentRenderProp, cx, type ElementProps } from \"@/internal\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport * as React from \"react\";\nexport type SectionHeadingSize = \"sm\" | \"md\" | \"lg\";\n\n/** Heading levels a component may render. h1 is the page's, so components never take it. */\nexport type HeadingLevel = 2 | 3 | 4 | 5 | 6;\n\n/** @deprecated Use `HeadingLevel`, which every component that renders a heading now shares. */\nexport type SectionHeadingLevel = HeadingLevel;\n\nexport interface SectionHeadingState extends Record<string, unknown> {\n\tsize: SectionHeadingSize;\n}\n\nexport interface SectionHeadingProps extends Omit<ElementProps<\"header\">, \"children\" | \"title\"> {\n\tchildren: React.ReactNode;\n\tannotation?: React.ReactNode;\n\tdescription?: React.ReactNode;\n\taction?: React.ReactNode;\n\tlevel?: SectionHeadingLevel;\n\tsize?: SectionHeadingSize;\n\trender?: ComponentRenderProp<SectionHeadingState>;\n}\n\nexport const SectionHeading = React.forwardRef<HTMLElement, SectionHeadingProps>(function SectionHeading(\n\t{ children, annotation, description, action, level = 2, size = \"md\", render, className, ...props },\n\tref\n) {\n\tconst HeadingTag = `h${level}` as const;\n\n\treturn useRender<SectionHeadingState, HTMLElement>({\n\t\tdefaultTagName: \"header\",\n\t\tref,\n\t\trender,\n\t\tstate: { size },\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: cx(\"lyds-section-heading\", className),\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"lyds-section-heading__rail\" aria-hidden=\"true\" />\n\t\t\t\t\t<span className=\"lyds-section-heading__content\">\n\t\t\t\t\t\t{annotation != null ? <span className=\"lyds-section-heading__annotation\">{annotation}</span> : null}\n\t\t\t\t\t\t<HeadingTag className=\"lyds-section-heading__title\">{children}</HeadingTag>\n\t\t\t\t\t\t{description != null ? <span className=\"lyds-section-heading__description\">{description}</span> : null}\n\t\t\t\t\t</span>\n\t\t\t\t\t{action != null ? <span className=\"lyds-section-heading__action\">{action}</span> : null}\n\t\t\t\t</>\n\t\t\t)\n\t\t}\n\t});\n});\n\nSectionHeading.displayName = \"SectionHeading\";\n"],"mappings":";;;;;;AAyBA,IAAa,IAAiB,EAAM,WAA6C,SAChF,EAAE,aAAU,eAAY,gBAAa,WAAQ,WAAQ,GAAG,UAAO,MAAM,WAAQ,cAAW,GAAG,KAC3F,GACC;CACD,IAAM,IAAa,IAAI;CAEvB,OAAO,EAA4C;EAClD,gBAAgB;EAChB;EACA;EACA,OAAO,EAAE,QAAK;EACd,OAAO;GACN,GAAG;GACH,WAAW,EAAG,wBAAwB,CAAS;GAC/C,UACC,kBAAA,GAAA,EAAA,UAAA;IACC,kBAAC,QAAD;KAAM,WAAU;KAA6B,eAAY;IAAQ,CAAA;IACjE,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA;MACE,KAAc,OAAgF,OAAzE,kBAAC,QAAD;OAAM,WAAU;OAAoC,UAAA;MAAiB,CAAA;MAC3F,kBAAC,GAAD;OAAY,WAAU;OAA+B;MAAqB,CAAA;MACzE,KAAe,OAAkF,OAA3E,kBAAC,QAAD;OAAM,WAAU;OAAqC,UAAA;MAAkB,CAAA;KACzF;;IACL,KAAU,OAAwE,OAAjE,kBAAC,QAAD;KAAM,WAAU;KAAgC,UAAA;IAAa,CAAA;GAC9E,EAAA,CAAA;EAEJ;CACD,CAAC;AACF,CAAC;AAED,EAAe,cAAc"}
@@ -1,8 +1,9 @@
1
- import { mergeClassNames as e } from "./shared.js";
1
+ "use client";
2
+ import { cx as e } from "../../internal/class-names.js";
2
3
  import * as t from "react";
3
4
  import { jsx as n } from "react/jsx-runtime";
4
5
  import { Separator as r } from "@base-ui/react/separator";
5
- //#region src/components/foundations/Separator.tsx
6
+ //#region src/components/foundations/separator.tsx
6
7
  var i = t.forwardRef(function({ variant: t = "solid", spacing: i = "md", orientation: a = "horizontal", className: o, style: s, ...c }, l) {
7
8
  return /* @__PURE__ */ n(r, {
8
9
  ...c,
@@ -18,4 +19,4 @@ i.displayName = "Separator";
18
19
  //#endregion
19
20
  export { i as Separator };
20
21
 
21
- //# sourceMappingURL=Separator.js.map
22
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.js","names":[],"sources":["../../../src/components/foundations/separator.tsx"],"sourcesContent":["import { cx } from \"@/internal\";\nimport { Separator as BaseSeparator, type SeparatorProps as BaseSeparatorProps } from \"@base-ui/react/separator\";\nimport * as React from \"react\";\nexport type SeparatorVariant = \"solid\" | \"technical\";\nexport type SeparatorSpacing = \"none\" | \"sm\" | \"md\" | \"lg\";\n\nexport interface SeparatorProps extends Omit<BaseSeparatorProps, \"className\" | \"style\"> {\n\tvariant?: SeparatorVariant;\n\tspacing?: SeparatorSpacing;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(function Separator({ variant = \"solid\", spacing = \"md\", orientation = \"horizontal\", className, style, ...props }, ref) {\n\treturn <BaseSeparator {...props} ref={ref} orientation={orientation} data-variant={variant} data-spacing={spacing} className={cx(\"lyds-separator\", className)} style={style} />;\n});\n\nSeparator.displayName = \"Separator\";\n"],"mappings":";;;;;;AAaA,IAAa,IAAY,EAAM,WAA2C,SAAmB,EAAE,aAAU,SAAS,aAAU,MAAM,iBAAc,cAAc,cAAW,UAAO,GAAG,KAAS,GAAK;CAChM,OAAO,kBAAC,GAAD;EAAe,GAAI;EAAY;EAAkB;EAAa,gBAAc;EAAS,gBAAc;EAAS,WAAW,EAAG,kBAAkB,CAAS;EAAU;CAAQ,CAAA;AAC/K,CAAC;AAED,EAAU,cAAc"}
@@ -1,91 +1,96 @@
1
- import { cx as e } from "./utils.js";
2
- import { CaretRightIcon as t } from "@phosphor-icons/react/dist/csr/CaretRight";
3
- import { forwardRef as n } from "react";
4
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
- import { ArrowLeftIcon as a } from "@phosphor-icons/react/dist/csr/ArrowLeft";
6
- import { ArrowRightIcon as o } from "@phosphor-icons/react/dist/csr/ArrowRight";
7
- import { DotsThreeIcon as s } from "@phosphor-icons/react/dist/csr/DotsThree";
1
+ "use client";
2
+ import { cx as e } from "../../internal/class-names.js";
3
+ import { useMessages as t } from "../../intl/provider.js";
4
+ import { CaretRightIcon as n } from "@phosphor-icons/react/dist/csr/CaretRight";
5
+ import { forwardRef as r } from "react";
6
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
+ import { ArrowLeftIcon as o } from "@phosphor-icons/react/dist/csr/ArrowLeft";
8
+ import { ArrowRightIcon as s } from "@phosphor-icons/react/dist/csr/ArrowRight";
9
+ import { DotsThreeIcon as c } from "@phosphor-icons/react/dist/csr/DotsThree";
8
10
  //#region src/components/navigation-data/breadcrumb-pagination.tsx
9
- var c = n(function({ className: t, label: n = "麵包屑導覽", ...i }, a) {
10
- return /* @__PURE__ */ r("nav", {
11
- ref: a,
12
- "aria-label": n,
13
- className: e("lyds-breadcrumb", t),
14
- ...i
11
+ var l = r(function({ className: n, label: r, ...a }, o) {
12
+ let s = t();
13
+ return /* @__PURE__ */ i("nav", {
14
+ ref: o,
15
+ "aria-label": r ?? s.breadcrumbLabel,
16
+ className: e("lyds-breadcrumb", n),
17
+ ...a
15
18
  });
16
- }), l = n(function({ className: t, ...n }, i) {
17
- return /* @__PURE__ */ r("ol", {
18
- ref: i,
19
+ }), u = r(function({ className: t, ...n }, r) {
20
+ return /* @__PURE__ */ i("ol", {
21
+ ref: r,
19
22
  className: e("lyds-breadcrumb__list", t),
20
23
  ...n
21
24
  });
22
- }), u = n(function({ className: t, ...n }, i) {
23
- return /* @__PURE__ */ r("li", {
24
- ref: i,
25
+ }), d = r(function({ className: t, ...n }, r) {
26
+ return /* @__PURE__ */ i("li", {
27
+ ref: r,
25
28
  className: e("lyds-breadcrumb__item", t),
26
29
  ...n
27
30
  });
28
- }), d = n(function({ children: t, className: n, ...i }, a) {
29
- return /* @__PURE__ */ r("a", {
31
+ }), f = r(function({ children: t, className: n, ...r }, a) {
32
+ return /* @__PURE__ */ i("a", {
30
33
  ref: a,
31
34
  className: e("lyds-breadcrumb__link", n),
32
- ...i,
35
+ ...r,
33
36
  children: t
34
37
  });
35
- }), f = n(function({ className: t, ...n }, i) {
36
- return /* @__PURE__ */ r("span", {
37
- ref: i,
38
+ }), p = r(function({ className: t, ...n }, r) {
39
+ return /* @__PURE__ */ i("span", {
40
+ ref: r,
38
41
  "aria-current": "page",
39
42
  className: e("lyds-breadcrumb__page", t),
40
43
  ...n
41
44
  });
42
- }), p = n(function({ children: n, className: i, ...a }, o) {
43
- return /* @__PURE__ */ r("span", {
45
+ }), m = r(function({ children: t, className: r, ...a }, o) {
46
+ return /* @__PURE__ */ i("span", {
44
47
  ref: o,
45
48
  "aria-hidden": "true",
46
- className: e("lyds-breadcrumb__separator", i),
49
+ className: e("lyds-breadcrumb__separator", r),
47
50
  ...a,
48
- children: n ?? /* @__PURE__ */ r(t, {
51
+ children: t ?? /* @__PURE__ */ i(n, {
49
52
  "aria-hidden": "true",
50
53
  weight: "bold"
51
54
  })
52
55
  });
53
- }), m = n(function({ "aria-label": t = "更多頁面", className: n, children: a, ...o }, c) {
54
- return /* @__PURE__ */ i("span", {
55
- ref: c,
56
- className: e("lyds-breadcrumb__ellipsis", n),
57
- ...o,
58
- children: [a ? /* @__PURE__ */ r("span", {
56
+ }), h = r(function({ "aria-label": n, className: r, children: o, ...s }, l) {
57
+ let u = t();
58
+ return /* @__PURE__ */ a("span", {
59
+ ref: l,
60
+ className: e("lyds-breadcrumb__ellipsis", r),
61
+ ...s,
62
+ children: [o ? /* @__PURE__ */ i("span", {
59
63
  "aria-hidden": "true",
60
- children: a
61
- }) : /* @__PURE__ */ r(s, {
64
+ children: o
65
+ }) : /* @__PURE__ */ i(c, {
62
66
  "aria-hidden": "true",
63
67
  weight: "bold"
64
- }), /* @__PURE__ */ r("span", {
68
+ }), /* @__PURE__ */ i("span", {
65
69
  className: "lyds-sr-only",
66
- children: t
70
+ children: n ?? u.breadcrumbMore
67
71
  })]
68
72
  });
69
- }), h = n(function({ className: t, label: n = "分頁導覽", ...i }, a) {
70
- return /* @__PURE__ */ r("nav", {
71
- ref: a,
72
- "aria-label": n,
73
- className: e("lyds-pagination", t),
74
- ...i
73
+ }), g = r(function({ className: n, label: r, ...a }, o) {
74
+ let s = t();
75
+ return /* @__PURE__ */ i("nav", {
76
+ ref: o,
77
+ "aria-label": r ?? s.paginationLabel,
78
+ className: e("lyds-pagination", n),
79
+ ...a
75
80
  });
76
- }), g = n(function({ className: t, ...n }, i) {
77
- return /* @__PURE__ */ r("ul", {
78
- ref: i,
81
+ }), _ = r(function({ className: t, ...n }, r) {
82
+ return /* @__PURE__ */ i("ul", {
83
+ ref: r,
79
84
  className: e("lyds-pagination__list", t),
80
85
  ...n
81
86
  });
82
- }), _ = n(function({ className: t, ...n }, i) {
83
- return /* @__PURE__ */ r("li", {
84
- ref: i,
87
+ }), v = r(function({ className: t, ...n }, r) {
88
+ return /* @__PURE__ */ i("li", {
89
+ ref: r,
85
90
  className: e("lyds-pagination__item", t),
86
91
  ...n
87
92
  });
88
- }), v = n(function({ children: t, className: n, current: i = !1, disabled: a = !1, href: o, onClick: s, tabIndex: c, ...l }, u) {
93
+ }), y = r(function({ children: t, className: n, current: r = !1, disabled: a = !1, href: o, onClick: s, tabIndex: c, ...l }, u) {
89
94
  let d = {
90
95
  onClick: (e) => {
91
96
  if (a) {
@@ -96,66 +101,69 @@ var c = n(function({ className: t, label: n = "麵包屑導覽", ...i }, a) {
96
101
  },
97
102
  tabIndex: a ? -1 : c
98
103
  };
99
- return /* @__PURE__ */ r("a", {
104
+ return /* @__PURE__ */ i("a", {
100
105
  ...l,
101
106
  ref: u,
102
- "aria-current": i ? "page" : void 0,
107
+ "aria-current": r ? "page" : void 0,
103
108
  "aria-disabled": a || void 0,
104
109
  className: e("lyds-pagination__control", n),
105
- "data-current": i ? "" : void 0,
110
+ "data-current": r ? "" : void 0,
106
111
  "data-disabled": a ? "" : void 0,
107
112
  href: a ? void 0 : o,
108
113
  role: a ? "link" : void 0,
109
114
  ...d,
110
115
  children: t
111
116
  });
112
- }), y = n(function({ className: t, current: n = !1, type: i = "button", ...a }, o) {
113
- return /* @__PURE__ */ r("button", {
117
+ }), b = r(function({ className: t, current: n = !1, type: r = "button", ...a }, o) {
118
+ return /* @__PURE__ */ i("button", {
114
119
  ref: o,
115
120
  "aria-current": n ? "page" : void 0,
116
121
  className: e("lyds-pagination__control", t),
117
122
  "data-current": n ? "" : void 0,
118
- type: i,
123
+ type: r,
119
124
  ...a
120
125
  });
121
- }), b = n(function({ "aria-label": e = "上一頁", children: t, ...n }, i) {
122
- return /* @__PURE__ */ r(v, {
123
- ref: i,
124
- "aria-label": e,
125
- ...n,
126
- children: t ?? /* @__PURE__ */ r(a, {
126
+ }), x = r(function({ "aria-label": e, children: n, ...r }, a) {
127
+ let s = t();
128
+ return /* @__PURE__ */ i(y, {
129
+ ref: a,
130
+ "aria-label": e ?? s.paginationPrevious,
131
+ ...r,
132
+ children: n ?? /* @__PURE__ */ i(o, {
127
133
  "aria-hidden": "true",
128
134
  weight: "bold"
129
135
  })
130
136
  });
131
- }), x = n(function({ "aria-label": e = "下一頁", children: t, ...n }, i) {
132
- return /* @__PURE__ */ r(v, {
133
- ref: i,
134
- "aria-label": e,
135
- ...n,
136
- children: t ?? /* @__PURE__ */ r(o, {
137
+ }), S = r(function({ "aria-label": e, children: n, ...r }, a) {
138
+ let o = t();
139
+ return /* @__PURE__ */ i(y, {
140
+ ref: a,
141
+ "aria-label": e ?? o.paginationNext,
142
+ ...r,
143
+ children: n ?? /* @__PURE__ */ i(s, {
137
144
  "aria-hidden": "true",
138
145
  weight: "bold"
139
146
  })
140
147
  });
141
- }), S = n(function({ "aria-label": t = "更多頁面", children: n, className: a, ...o }, c) {
142
- return /* @__PURE__ */ i("span", {
143
- ref: c,
144
- className: e("lyds-pagination__ellipsis", a),
145
- ...o,
146
- children: [n ? /* @__PURE__ */ r("span", {
148
+ }), C = r(function({ "aria-label": n, children: r, className: o, ...s }, l) {
149
+ let u = t();
150
+ return /* @__PURE__ */ a("span", {
151
+ ref: l,
152
+ className: e("lyds-pagination__ellipsis", o),
153
+ ...s,
154
+ children: [r ? /* @__PURE__ */ i("span", {
147
155
  "aria-hidden": "true",
148
- children: n
149
- }) : /* @__PURE__ */ r(s, {
156
+ children: r
157
+ }) : /* @__PURE__ */ i(c, {
150
158
  "aria-hidden": "true",
151
159
  weight: "bold"
152
- }), /* @__PURE__ */ r("span", {
160
+ }), /* @__PURE__ */ i("span", {
153
161
  className: "lyds-sr-only",
154
- children: t
162
+ children: n ?? u.paginationMore
155
163
  })]
156
164
  });
157
165
  });
158
166
  //#endregion
159
- export { c as Breadcrumb, m as BreadcrumbEllipsis, u as BreadcrumbItem, d as BreadcrumbLink, l as BreadcrumbList, f as BreadcrumbPage, p as BreadcrumbSeparator, h as Pagination, y as PaginationButton, S as PaginationEllipsis, _ as PaginationItem, v as PaginationLink, g as PaginationList, x as PaginationNext, b as PaginationPrevious };
167
+ export { l as Breadcrumb, h as BreadcrumbEllipsis, d as BreadcrumbItem, f as BreadcrumbLink, u as BreadcrumbList, p as BreadcrumbPage, m as BreadcrumbSeparator, g as Pagination, b as PaginationButton, C as PaginationEllipsis, v as PaginationItem, y as PaginationLink, _ as PaginationList, S as PaginationNext, x as PaginationPrevious };
160
168
 
161
169
  //# sourceMappingURL=breadcrumb-pagination.js.map