@commenda/pathfinder 0.1.0 → 0.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 (133) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/accordion/AccordionSection.js +9 -3
  3. package/dist/components/address-input/AddressInput.js +1 -1
  4. package/dist/components/artifact-card/ArtifactCard.js +1 -1
  5. package/dist/components/artifact-panel/ArtifactPanel.js +81 -55
  6. package/dist/components/attachment/Attachment.d.ts +2 -6
  7. package/dist/components/attachment/Attachment.js +59 -36
  8. package/dist/components/attachment/AttachmentCard.d.ts +1 -1
  9. package/dist/components/attachment/AttachmentCard.js +56 -43
  10. package/dist/components/attachment/attachment-class-names.d.ts +1 -1
  11. package/dist/components/attachment/attachment-class-names.js +1 -1
  12. package/dist/components/attachment-group/AttachmentGroup.js +1 -1
  13. package/dist/components/avatar/avatar-helper.d.ts +1 -1
  14. package/dist/components/banner/Banner.js +5 -2
  15. package/dist/components/button/Button.js +1 -1
  16. package/dist/components/calendar/CalendarAgenda.js +1 -1
  17. package/dist/components/calendar/CalendarArtwork.js +16 -22
  18. package/dist/components/calendar/CalendarEventContent.js +2 -2
  19. package/dist/components/calendar/CalendarPopup.js +102 -82
  20. package/dist/components/calendar/CalendarToolbar.js +10 -10
  21. package/dist/components/card/Card.js +47 -41
  22. package/dist/components/checkbox/Checkbox.js +31 -13
  23. package/dist/components/choices/choice-motion.d.ts +12 -0
  24. package/dist/components/choices/choice-motion.js +22 -0
  25. package/dist/components/code-block/CodeBlock.js +3 -2
  26. package/dist/components/controls/control-class-names.d.ts +1 -0
  27. package/dist/components/controls/control-class-names.js +8 -8
  28. package/dist/components/controls/useHoverHighlight.d.ts +12 -0
  29. package/dist/components/controls/useHoverHighlight.js +51 -0
  30. package/dist/components/controls/useSelectionIndicator.d.ts +3 -4
  31. package/dist/components/controls/useSelectionIndicator.js +43 -28
  32. package/dist/components/data-grid/DataGrid.js +7 -7
  33. package/dist/components/data-grid/DataGridHeaders.js +1 -1
  34. package/dist/components/date-picker/DateCalendar.js +3 -3
  35. package/dist/components/date-picker/DatePicker.js +10 -10
  36. package/dist/components/date-picker/field/DateField.js +1 -1
  37. package/dist/components/description-list/DescriptionList.js +2 -2
  38. package/dist/components/dialog/ConfirmDialog.js +1 -1
  39. package/dist/components/dialog/Dialog.js +1 -1
  40. package/dist/components/distribution-bar/DistributionBar.js +45 -35
  41. package/dist/components/drag-handle/DragHandle.d.ts +1 -1
  42. package/dist/components/dropdown/Dropdown.js +27 -26
  43. package/dist/components/dropdown/MenuContent.js +100 -69
  44. package/dist/components/dropdown/dropdown-types.d.ts +1 -0
  45. package/dist/components/dropdown/menu-motion.d.ts +2 -0
  46. package/dist/components/dropdown/menu-motion.js +4 -0
  47. package/dist/components/feedback/FeedbackIcon.d.ts +2 -1
  48. package/dist/components/feedback/FeedbackIcon.js +4 -4
  49. package/dist/components/feedback/FeedbackSurface.d.ts +3 -3
  50. package/dist/components/feedback/FeedbackSurface.js +49 -21
  51. package/dist/components/fields/FieldAction.d.ts +1 -0
  52. package/dist/components/fields/FieldAction.js +2 -2
  53. package/dist/components/icon-button/IconButton.js +37 -37
  54. package/dist/components/icons/index.js +776 -776
  55. package/dist/components/inline-reference/InlineReference.js +1 -8
  56. package/dist/components/list/List.js +2 -2
  57. package/dist/components/list/ListGroup.js +35 -30
  58. package/dist/components/list/ListTask.js +1 -1
  59. package/dist/components/list/SettingRow.js +1 -1
  60. package/dist/components/markdown/Markdown.js +11 -10
  61. package/dist/components/markdown/MarkdownTable.d.ts +1 -1
  62. package/dist/components/markdown/MarkdownTable.js +71 -54
  63. package/dist/components/otp/OTP.js +44 -43
  64. package/dist/components/output-sections/OutputRow.js +2 -3
  65. package/dist/components/overlays/OverlayFrame.js +2 -2
  66. package/dist/components/overlays/overlay-class-names.d.ts +3 -3
  67. package/dist/components/overlays/overlay-class-names.js +1 -1
  68. package/dist/components/phone-input/CountryPicker.js +11 -8
  69. package/dist/components/popover/Popover.js +2 -2
  70. package/dist/components/question-card/QuestionOptions.js +3 -3
  71. package/dist/components/radio-group/RadioGroup.js +59 -50
  72. package/dist/components/search/Search.js +51 -47
  73. package/dist/components/segmented-control/SegmentedControl.js +7 -6
  74. package/dist/components/selection/ChoiceField.js +1 -1
  75. package/dist/components/selection/ChoiceList.js +2 -1
  76. package/dist/components/selection/SearchableChoice.js +129 -114
  77. package/dist/components/selection/SelectedTags.js +1 -1
  78. package/dist/components/selection/SimpleChoice.js +95 -77
  79. package/dist/components/selection/choice-styles.d.ts +2 -2
  80. package/dist/components/selection/choice-styles.js +1 -1
  81. package/dist/components/sheet/Sheet.js +7 -7
  82. package/dist/components/side-nav/SideNav.d.ts +2 -5
  83. package/dist/components/side-nav/SideNav.js +98 -56
  84. package/dist/components/side-nav/SideNavItemView.d.ts +1 -1
  85. package/dist/components/side-nav/SideNavItemView.js +83 -98
  86. package/dist/components/side-nav/index.d.ts +2 -0
  87. package/dist/components/side-nav/index.js +1 -1
  88. package/dist/components/split-button/SplitButton.js +3 -2
  89. package/dist/components/stepper/StepMarker.js +32 -28
  90. package/dist/components/stepper/Stepper.js +30 -22
  91. package/dist/components/suggested-prompt/SuggestedPrompt.js +1 -1
  92. package/dist/components/switch/Switch.d.ts +1 -1
  93. package/dist/components/switch/Switch.js +38 -28
  94. package/dist/components/table/Table.js +134 -110
  95. package/dist/components/table/TableColumnHeader.js +20 -2
  96. package/dist/components/table/TableColumnResize.js +1 -1
  97. package/dist/components/table/TableColumnsMenu.js +1 -0
  98. package/dist/components/table/TableFilterChip.js +1 -1
  99. package/dist/components/table/TableFilterEditor.js +6 -6
  100. package/dist/components/table/TableFilters.js +1 -0
  101. package/dist/components/table/TableOptionMenu.d.ts +1 -1
  102. package/dist/components/table/TableOptionMenu.js +16 -17
  103. package/dist/components/table/TablePagination.js +1 -0
  104. package/dist/components/table/TableSelectionBar.js +4 -1
  105. package/dist/components/table/index.js +6 -6
  106. package/dist/components/table/table-column-style.js +0 -1
  107. package/dist/components/table/table-types.d.ts +5 -0
  108. package/dist/components/table/useTableData.js +2 -2
  109. package/dist/components/tabs/Tabs.js +61 -53
  110. package/dist/components/tabs/tab-class-names.d.ts +1 -1
  111. package/dist/components/tabs/tab-class-names.js +1 -1
  112. package/dist/components/tabular/TableEditCell.js +3 -1
  113. package/dist/components/tabular/tabular-class-names.d.ts +1 -0
  114. package/dist/components/tabular/tabular-class-names.js +1 -0
  115. package/dist/components/tabular/useCellEdit.js +1 -1
  116. package/dist/components/tabular/useTabularPinning.js +7 -6
  117. package/dist/components/tag/Tag.js +1 -1
  118. package/dist/components/tag-input/TagInput.js +64 -53
  119. package/dist/components/tag-input/useTagMotion.d.ts +6 -0
  120. package/dist/components/tag-input/useTagMotion.js +36 -0
  121. package/dist/components/text-area/TextArea.js +2 -1
  122. package/dist/components/thread/ThreadReply.js +10 -7
  123. package/dist/components/tool-call/ToolCall.js +2 -2
  124. package/dist/components/tree/TreeItemView.js +3 -3
  125. package/dist/index.d.ts +2 -2
  126. package/dist/index.js +37 -37
  127. package/dist/styles.css +1 -1
  128. package/package.json +5 -1
  129. package/dist/_virtual/_rolldown/runtime.js +0 -11
  130. package/dist/components/date-picker/date-values.d.ts +0 -23
  131. package/dist/components/date-picker/date-values.js +0 -52
  132. package/dist/components/table/TableHeaderPin.d.ts +0 -6
  133. package/dist/components/table/TableHeaderPin.js +0 -66
@@ -31,7 +31,7 @@ function h({ value: a, onChange: o, allowedCountries: p, disabled: h, label: g }
31
31
  disabled: h,
32
32
  children: [/* @__PURE__ */ l(u.Trigger, {
33
33
  "aria-label": `${g} country: ${y(a)}`,
34
- className: "pf:flex pf:h-[26px] pf:shrink-0 pf:items-center pf:gap-sm pf:px-md pf:border-0 pf:border-e pf:border-solid pf:border-soft-pearl-400 pf:bg-transparent pf:text-inherit pf:font-body pf:text-label-13 pf:rounded-s-sm pf:focus-visible:outline-2 pf:focus-visible:outline-blue-700 pf:disabled:cursor-not-allowed",
34
+ className: "pf:flex pf:h-[26px] pf:shrink-0 pf:items-center pf:gap-sm pf:px-md pf:border-0 pf:border-e pf:border-solid pf:border-soft-pearl-400 pf:bg-transparent pf:text-inherit pf:font-body pf:text-label-13 pf:rounded-s-sm pf:cursor-pointer pf:focus-visible:outline-2 pf:focus-visible:outline-blue-700 pf:disabled:cursor-not-allowed",
35
35
  children: [
36
36
  /* @__PURE__ */ c(m, { country: a }),
37
37
  /* @__PURE__ */ l("span", { children: ["+", f(a)] }),
@@ -43,33 +43,36 @@ function h({ value: a, onChange: o, allowedCountries: p, disabled: h, label: g }
43
43
  className: "pf:z-[60]",
44
44
  children: /* @__PURE__ */ l(u.Popup, {
45
45
  "aria-label": `${g} country`,
46
- className: `${i} pf:w-[280px]`,
46
+ className: `${i} pf:[&]:w-[360px]`,
47
47
  children: [
48
48
  /* @__PURE__ */ l("div", {
49
- className: "pf:flex pf:h-[36px] pf:items-center pf:gap-md pf:px-lg pf:border-b pf:border-solid pf:border-soft-pearl-300",
50
- children: [/* @__PURE__ */ c(t, { size: 16 }), /* @__PURE__ */ c(u.Input, {
49
+ className: "pf:box-border pf:flex pf:h-[36px] pf:items-center pf:gap-md pf:px-lg pf:border-b pf:border-solid pf:border-soft-pearl-300",
50
+ children: [/* @__PURE__ */ c("span", {
51
+ className: "pf:flex pf:shrink-0",
52
+ children: /* @__PURE__ */ c(t, { size: 16 })
53
+ }), /* @__PURE__ */ c(u.Input, {
51
54
  "aria-label": "Search countries",
52
55
  placeholder: "Search country or dial code",
53
56
  className: "pf:min-w-0 pf:w-full pf:h-full pf:p-0 pf:border-0 pf:bg-transparent pf:font-body pf:text-label-13 pf:outline-none"
54
57
  })]
55
58
  }),
56
59
  /* @__PURE__ */ c(u.Empty, {
57
- className: "pf:p-lg pf:text-copy-12",
60
+ className: "pf:p-lg pf:empty:p-0 pf:text-copy-12",
58
61
  children: "No countries found."
59
62
  }),
60
63
  /* @__PURE__ */ c(u.List, {
61
- className: "pf:max-h-[256px] pf:overflow-auto pf:p-sm",
64
+ className: "pf:box-border pf:max-h-[256px] pf:overflow-auto pf:p-sm pf:empty:p-0",
62
65
  children: (t) => /* @__PURE__ */ l(u.Item, {
63
66
  value: t,
64
67
  className: r,
65
68
  children: [
66
69
  /* @__PURE__ */ c(m, { country: t }),
67
70
  /* @__PURE__ */ c("span", {
68
- className: "pf:flex-1",
71
+ className: "pf:min-w-0 pf:flex-1",
69
72
  children: _.of(t) ?? t
70
73
  }),
71
74
  /* @__PURE__ */ l("span", {
72
- className: "pf:text-soft-pearl-800",
75
+ className: "pf:shrink-0 pf:text-soft-pearl-800",
73
76
  children: ["+", f(t)]
74
77
  }),
75
78
  /* @__PURE__ */ c(u.ItemIndicator, { children: /* @__PURE__ */ c(e, { size: 16 }) })
@@ -9,7 +9,7 @@ import { jsx as o, jsxs as s } from "react/jsx-runtime";
9
9
  import { Popover as c } from "@base-ui/react/popover";
10
10
  import { PreviewCard as l } from "@base-ui/react/preview-card";
11
11
  //#region src/components/popover/Popover.tsx
12
- var u = "pf:box-border pf:flex pf:flex-col pf:w-[320px] pf:max-w-[calc(100vw-16px)] pf:max-h-[var(--available-height)] pf:min-w-0 pf:overflow-hidden pf:rounded-[10px] pf:border-[0.5px] pf:border-solid pf:border-soft-pearl-300 pf:bg-background pf:shadow-menu pf:font-body pf:text-copy-13 pf:text-soft-pearl-1000 pf:origin-[var(--transform-origin)] pf:outline-none", d = "pf:transition-[transform,opacity] pf:duration-150 pf:ease-(--pf-easing-out) pf:data-[starting-style]:opacity-0 pf:data-[ending-style]:opacity-0 pf:data-[side=bottom]:[--pf-popover-closed-transform:translateY(-8px)_scale(0.95)] pf:data-[side=top]:[--pf-popover-closed-transform:translateY(8px)_scale(0.95)] pf:data-[side=left]:[--pf-popover-closed-transform:translateX(8px)_scale(0.95)] pf:data-[side=right]:[--pf-popover-closed-transform:translateX(-8px)_scale(0.95)] pf:motion-safe:data-[starting-style]:[transform:var(--pf-popover-closed-transform)] pf:motion-safe:data-[ending-style]:[transform:var(--pf-popover-closed-transform)]";
12
+ var u = "pf:box-border pf:flex pf:flex-col pf:w-[320px] pf:max-w-[calc(100vw-16px)] pf:max-h-[var(--available-height)] pf:min-w-0 pf:overflow-hidden pf:rounded-[10px] pf:border-[0.5px] pf:border-solid pf:border-soft-pearl-300 pf:bg-background pf:shadow-menu pf:font-body pf:text-copy-13 pf:text-soft-pearl-1000 pf:origin-[var(--transform-origin)] pf:outline-none", d = "pf:transition-[transform,opacity] pf:duration-160 pf:data-[ending-style]:duration-100 pf:ease-[cubic-bezier(0.23,1,0.32,1)] pf:motion-reduce:transition-none pf:data-[starting-style]:opacity-0 pf:data-[ending-style]:opacity-0 pf:data-[side=bottom]:[--pf-popover-closed-transform:translateY(-4px)_scale(0.98)] pf:data-[side=top]:[--pf-popover-closed-transform:translateY(4px)_scale(0.98)] pf:data-[side=left]:[--pf-popover-closed-transform:translateX(4px)_scale(0.98)] pf:data-[side=right]:[--pf-popover-closed-transform:translateX(-4px)_scale(0.98)] pf:motion-safe:data-[starting-style]:[transform:var(--pf-popover-closed-transform)] pf:motion-safe:data-[ending-style]:[transform:var(--pf-popover-closed-transform)]";
13
13
  function f(f) {
14
14
  let { trigger: p, title: m, description: h, positionConfig: g, children: _, className: v } = f, y = n(f), b = i(), x = a(null);
15
15
  return f.mode === "preview" ? /* @__PURE__ */ s(l.Root, {
@@ -75,7 +75,7 @@ function f(f) {
75
75
  closeConfig: f.closeConfig,
76
76
  compact: !0,
77
77
  heading: /* @__PURE__ */ o(c.Title, {
78
- className: "pf:m-0 pf:pt-sm pf:text-label-13 pf:font-medium pf:wrap-anywhere",
78
+ className: "pf:m-0 pf:text-label-13 pf:font-medium pf:wrap-anywhere",
79
79
  children: m
80
80
  }),
81
81
  description: h && /* @__PURE__ */ o(c.Description, {
@@ -28,7 +28,7 @@ var f = "pf:flex pf:flex-col pf:min-w-0", p = "pf:flex pf:w-full pf:items-center
28
28
  value: e.id,
29
29
  disabled: v || e.disabled,
30
30
  "aria-label": e.label,
31
- className: a(p, "pf:border-0 pf:bg-transparent pf:cursor-pointer"),
31
+ className: a(p, "pf:border-0 pf:cursor-pointer", g.includes(e.id) ? "pf:bg-blue-700 pf:text-background pf:data-checked:hover:bg-blue-800" : "pf:bg-transparent pf:text-soft-pearl-1000"),
32
32
  onClick: () => {
33
33
  !v && !e.disabled && (b(e.id), t && C(!1));
34
34
  },
@@ -38,7 +38,7 @@ var f = "pf:flex pf:flex-col pf:min-w-0", p = "pf:flex pf:w-full pf:items-center
38
38
  children: [
39
39
  /* @__PURE__ */ c("span", {
40
40
  "aria-hidden": "true",
41
- className: a("pf:flex pf:size-[24px] pf:shrink-0 pf:items-center pf:justify-center pf:rounded-[6px] pf:text-label-13", g.includes(e.id) ? "pf:bg-blue-700 pf:text-white" : "pf:bg-soft-pearl-300 pf:text-soft-pearl-800"),
41
+ className: a("pf:flex pf:size-[24px] pf:shrink-0 pf:items-center pf:justify-center pf:rounded-[6px] pf:text-label-13", g.includes(e.id) ? "pf:bg-blue-700 pf:text-background" : "pf:bg-soft-pearl-300 pf:text-soft-pearl-800"),
42
42
  children: h.indexOf(e) + 1
43
43
  }),
44
44
  e.icon && /* @__PURE__ */ c("span", {
@@ -52,7 +52,7 @@ var f = "pf:flex pf:flex-col pf:min-w-0", p = "pf:flex pf:w-full pf:items-center
52
52
  className: "pf:block pf:text-label-13-strong",
53
53
  children: e.label
54
54
  }), e.description && /* @__PURE__ */ c("span", {
55
- className: "pf:block pf:text-copy-13 pf:text-soft-pearl-800",
55
+ className: a("pf:block pf:text-copy-13", g.includes(e.id) ? "pf:text-background" : "pf:text-soft-pearl-800"),
56
56
  children: e.description
57
57
  })]
58
58
  })
@@ -1,70 +1,79 @@
1
1
  "use client";
2
2
  import { getChoiceClassNames as e, getChoiceMarkClassNames as t } from "../choices/choice-class-names.js";
3
- import { ChoiceLeading as n } from "../choices/ChoiceLeading.js";
4
- import { ChoiceText as r } from "../choices/ChoiceText.js";
5
- import i from "clsx";
6
- import { forwardRef as a, useId as o } from "react";
7
- import { jsx as s, jsxs as c } from "react/jsx-runtime";
8
- import { Radio as l } from "@base-ui/react/radio";
9
- import { RadioGroup as u } from "@base-ui/react/radio-group";
3
+ import { choiceMotionProps as n, choicePressClass as r } from "../choices/choice-motion.js";
4
+ import { ChoiceLeading as i } from "../choices/ChoiceLeading.js";
5
+ import { ChoiceText as a } from "../choices/ChoiceText.js";
6
+ import o from "clsx";
7
+ import { forwardRef as s, useId as c } from "react";
8
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
+ import { Radio as d } from "@base-ui/react/radio";
10
+ import { RadioGroup as f } from "@base-ui/react/radio-group";
10
11
  //#region src/components/radio-group/RadioGroup.tsx
11
- var d = a(function({ label: a, hideLabel: d, description: f, options: p, variant: m = "default", orientation: h = "vertical", className: g, disabled: _, onValueChange: v, "aria-describedby": y, ...b }, x) {
12
- let S = o();
13
- return /* @__PURE__ */ c("div", {
14
- className: i("pf-radio-field pf:flex pf:flex-col pf:gap-md pf:max-w-full", g),
12
+ var p = s(function({ label: s, hideLabel: p, description: m, options: h, variant: g = "default", orientation: _ = "vertical", className: v, disabled: y, onValueChange: b, "aria-describedby": x, ...S }, C) {
13
+ let w = c();
14
+ return /* @__PURE__ */ u("div", {
15
+ className: o("pf-radio-field pf:flex pf:flex-col pf:gap-md pf:max-w-full", v),
15
16
  children: [
16
- /* @__PURE__ */ s("span", {
17
- id: `${S}-label`,
18
- className: d ? "pf:sr-only" : "pf-radio-group-label pf:text-soft-pearl-1000 pf:font-body pf:text-label-13 pf:font-medium",
19
- children: a
17
+ /* @__PURE__ */ l("span", {
18
+ id: `${w}-label`,
19
+ className: p ? "pf:sr-only" : "pf-radio-group-label pf:text-soft-pearl-1000 pf:font-body pf:text-label-13 pf:font-medium",
20
+ children: s
20
21
  }),
21
- f && /* @__PURE__ */ s("span", {
22
- id: `${S}-description`,
22
+ m && /* @__PURE__ */ l("span", {
23
+ id: `${w}-description`,
23
24
  className: "pf:flex pf:flex-col pf:text-soft-pearl-800 pf:font-body pf:text-copy-12 pf:font-normal pf:wrap-anywhere pf:empty:hidden pf:group-data-disabled/choice:text-inherit",
24
- children: f
25
+ children: m
25
26
  }),
26
- /* @__PURE__ */ s(u, {
27
- ...b,
28
- ref: x,
29
- disabled: _,
27
+ /* @__PURE__ */ l(f, {
28
+ ...S,
29
+ onKeyDownCapture: (e) => {
30
+ for (let t of e.currentTarget.querySelectorAll("[data-motion]")) t.removeAttribute("data-motion");
31
+ S.onKeyDownCapture?.(e);
32
+ },
33
+ ref: C,
34
+ disabled: y,
30
35
  onValueChange: (e) => {
31
- e !== null && v?.(e);
36
+ e !== null && b?.(e);
32
37
  },
33
- "aria-labelledby": `${S}-label`,
34
- "aria-describedby": [y, f ? `${S}-description` : void 0].filter(Boolean).join(" ") || void 0,
35
- className: i("pf-radio-group pf:flex pf:min-w-0", h === "horizontal" ? "pf:flex-row pf:flex-wrap" : "pf:flex-col", m === "card" ? "pf:items-stretch pf:gap-lg" : "pf:items-start", m === "default" && (h === "horizontal" ? "pf:gap-xl" : "pf:gap-md")),
36
- "data-orientation": h,
37
- "data-variant": m,
38
- children: p.map((a, o) => {
39
- let u = `${S}-${String(o)}-description`, d = _ || a.disabled ? a.disabledReason : void 0;
40
- return /* @__PURE__ */ c(l.Root, {
41
- value: a.value,
42
- disabled: a.disabled,
43
- "aria-label": a.label,
44
- "aria-describedby": a.description || d || a.details?.length ? u : void 0,
45
- className: i("pf-choice pf-radio", e(m), m === "card" && h === "horizontal" && "pf:flex-[1_1_240px]"),
46
- "data-variant": m,
38
+ "aria-labelledby": `${w}-label`,
39
+ "aria-describedby": [x, m ? `${w}-description` : void 0].filter(Boolean).join(" ") || void 0,
40
+ className: o("pf-radio-group pf:flex pf:min-w-0", _ === "horizontal" ? "pf:flex-row pf:flex-wrap" : "pf:flex-col", g === "card" ? "pf:items-stretch pf:gap-lg" : "pf:items-start", g === "default" && (_ === "horizontal" ? "pf:gap-xl" : "pf:gap-md")),
41
+ "data-orientation": _,
42
+ "data-variant": g,
43
+ children: h.map((s, c) => {
44
+ let f = `${w}-${String(c)}-description`, p = y || s.disabled ? s.disabledReason : void 0;
45
+ return /* @__PURE__ */ u(d.Root, {
46
+ ...n,
47
+ value: s.value,
48
+ disabled: s.disabled,
49
+ "aria-label": s.label,
50
+ "aria-describedby": s.description || p || s.details?.length ? f : void 0,
51
+ className: o("pf-choice pf-radio", e(g), g === "card" && _ === "horizontal" && "pf:flex-[1_1_240px]"),
52
+ "data-variant": g,
47
53
  children: [
48
- /* @__PURE__ */ s("span", {
49
- className: i("pf-choice-mark", t(m, !0)),
54
+ /* @__PURE__ */ l("span", {
55
+ className: o("pf-choice-mark", t(g, !0), r),
50
56
  "aria-hidden": "true",
51
- children: /* @__PURE__ */ s(l.Indicator, { className: "pf-radio-dot pf:size-[6px] pf:rounded-full pf:bg-current" })
57
+ children: /* @__PURE__ */ l(d.Indicator, {
58
+ keepMounted: !0,
59
+ className: "pf-radio-dot pf:size-[6px] pf:rounded-full pf:bg-current pf:data-unchecked:opacity-0 pf:data-unchecked:scale-[0.7] pf:transition-none pf:motion-safe:group-data-[motion=pointer]/choice:transition-[transform,opacity] pf:duration-150 pf:ease-[cubic-bezier(0.23,1,0.32,1)]"
60
+ })
52
61
  }),
53
- /* @__PURE__ */ s(n, { children: a.leading }),
54
- /* @__PURE__ */ s(r, {
55
- label: a.label,
56
- description: a.description,
57
- descriptionId: u,
58
- details: a.details,
59
- disabledReason: d
62
+ /* @__PURE__ */ l(i, { children: s.leading }),
63
+ /* @__PURE__ */ l(a, {
64
+ label: s.label,
65
+ description: s.description,
66
+ descriptionId: f,
67
+ details: s.details,
68
+ disabledReason: p
60
69
  })
61
70
  ]
62
- }, a.value);
71
+ }, s.value);
63
72
  })
64
73
  })
65
74
  ]
66
75
  });
67
76
  });
68
- d.displayName = "PathfinderRadioGroup";
77
+ p.displayName = "PathfinderRadioGroup";
69
78
  //#endregion
70
- export { d as RadioGroup };
79
+ export { p as RadioGroup };
@@ -10,97 +10,97 @@ import { forwardRef as l, useEffect as u, useRef as d, useState as f } from "rea
10
10
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
11
11
  //#region src/components/search/Search.tsx
12
12
  var h = l(function(l, h) {
13
- let g = s(l), [_, v] = f(!1), y = d(null), b = d(!1), { label: x, hideLabel: S, labelConfig: C, description: w, errorConfig: T, sourceConfig: E, disableConfig: D, value: O, defaultValue: k, onValueChange: A, variant: j = "fixed", loadingConfig: M, shortcutConfig: N, onSearch: P, className: F, onBlur: I, onKeyDown: L, ...R } = l, z = () => {
14
- b.current = !0, v(!1);
13
+ let g = s(l), [_, v] = f(!1), [y, b] = f(!1), x = d(null), S = d(!1), { label: C, hideLabel: w, labelConfig: T, description: E, errorConfig: D, sourceConfig: O, disableConfig: k, value: A, defaultValue: j, onValueChange: M, variant: N = "fixed", loadingConfig: P, shortcutConfig: F, onSearch: I, className: L, onBlur: R, onKeyDown: z, ...B } = l, V = () => {
14
+ S.current = !0, v(!1);
15
15
  };
16
16
  u(() => {
17
- _ ? g.controlRef.current?.focus() : b.current &&= (y.current?.focus(), !1);
17
+ _ ? g.controlRef.current?.focus() : S.current &&= (x.current?.focus(), !1);
18
18
  }, [_, g.controlRef]);
19
- let B = N?.key, V = N?.scopeId;
19
+ let H = F?.key, U = F?.scopeId;
20
20
  u(() => {
21
- if (!B || !V || D?.isDisabled) return;
22
- let e = document.getElementById(V), t = (e) => {
23
- if (e.defaultPrevented || e.isComposing || e.ctrlKey || e.altKey || e.metaKey || e.key !== B) return;
21
+ if (!H || !U || k?.isDisabled) return;
22
+ let e = document.getElementById(U), t = (e) => {
23
+ if (e.defaultPrevented || e.isComposing || e.ctrlKey || e.altKey || e.metaKey || e.key !== H) return;
24
24
  let t = e.target;
25
- t instanceof HTMLElement && t.closest("input,textarea,select,[contenteditable=\"true\"]") || (e.preventDefault(), j === "expandable" ? v(!0) : g.controlRef.current?.focus());
25
+ t instanceof HTMLElement && t.closest("input,textarea,select,[contenteditable=\"true\"]") || (e.preventDefault(), b(!1), N === "expandable" ? v(!0) : g.controlRef.current?.focus());
26
26
  };
27
27
  return e?.addEventListener("keydown", t), () => {
28
28
  e?.removeEventListener("keydown", t);
29
29
  };
30
30
  }, [
31
- B,
32
- V,
33
- D?.isDisabled,
34
- j,
31
+ H,
32
+ U,
33
+ k?.isDisabled,
34
+ N,
35
35
  g.controlRef
36
36
  ]);
37
- let [H, U] = f(!1);
37
+ let [W, G] = f(!1);
38
38
  u(() => {
39
- if (!M?.isLoading) {
40
- U(!1);
39
+ if (!P?.isLoading) {
40
+ G(!1);
41
41
  return;
42
42
  }
43
43
  let e = setTimeout(() => {
44
- U(!0);
44
+ G(!0);
45
45
  }, 150);
46
46
  return () => {
47
47
  clearTimeout(e);
48
48
  };
49
- }, [M?.isLoading]);
50
- let W = /* @__PURE__ */ p(i, {
49
+ }, [P?.isLoading]);
50
+ let K = /* @__PURE__ */ p(i, {
51
51
  field: l,
52
52
  id: g.id,
53
53
  supportId: g.supportId,
54
54
  error: g.error,
55
- className: c(j === "expandable" ? "pf:w-full" : j === "global" ? "pf:w-full pf:max-w-[720px]" : "pf:w-full", F),
55
+ className: c(N === "expandable" ? "pf:w-full" : N === "global" ? "pf:w-full pf:max-w-[720px]" : "pf:w-full", L),
56
56
  children: /* @__PURE__ */ m("div", {
57
- className: c(o, "pf:gap-xs pf:px-md", j === "global" ? "pf:min-h-[40px] pf:rounded-full" : "pf:min-h-[28px]"),
57
+ className: c(o, "pf:gap-xs pf:px-md", N === "global" ? "pf:min-h-[40px] pf:rounded-full" : "pf:min-h-[28px]"),
58
58
  "data-invalid": g.error ? "" : void 0,
59
- "data-disabled": D?.isDisabled ? "" : void 0,
59
+ "data-disabled": k?.isDisabled ? "" : void 0,
60
60
  children: [
61
61
  /* @__PURE__ */ p("span", {
62
62
  "aria-hidden": "true",
63
63
  className: "pf:flex pf:size-[16px] pf:shrink-0 pf:items-center pf:justify-center pf:text-soft-pearl-800",
64
- children: M?.isLoading && H ? /* @__PURE__ */ p(e, { size: 16 }) : /* @__PURE__ */ p(n, {
64
+ children: P?.isLoading && W ? /* @__PURE__ */ p(e, { size: 16 }) : /* @__PURE__ */ p(n, {
65
65
  size: 16,
66
66
  tone: "inherit"
67
67
  })
68
68
  }),
69
69
  /* @__PURE__ */ p("input", {
70
- ...R,
70
+ ...B,
71
71
  ref: (e) => {
72
72
  g.controlRef.current = e, typeof h == "function" ? h(e) : h && (h.current = e);
73
73
  },
74
74
  id: g.id,
75
75
  type: "search",
76
76
  value: g.value,
77
- disabled: D?.isDisabled,
78
- "aria-invalid": g.error ? !0 : R["aria-invalid"],
77
+ disabled: k?.isDisabled,
78
+ "aria-invalid": g.error ? !0 : B["aria-invalid"],
79
79
  "aria-describedby": g.describedBy,
80
- "aria-busy": M?.isLoading,
80
+ "aria-busy": P?.isLoading,
81
81
  onChange: (e) => {
82
82
  g.change(e.target.value);
83
83
  },
84
84
  onBlur: (e) => {
85
- g.blur(), I?.(e);
85
+ g.blur(), R?.(e);
86
86
  },
87
87
  onKeyDown: (e) => {
88
- L?.(e), !(e.defaultPrevented || e.nativeEvent.isComposing) && (e.key === "Enter" && P && (e.preventDefault(), P(g.value)), e.key === "Escape" && (e.preventDefault(), g.value && !l.readOnly ? g.change("") : j === "expandable" ? z() : g.controlRef.current?.blur()));
88
+ z?.(e), !(e.defaultPrevented || e.nativeEvent.isComposing) && (e.key === "Enter" && I && (e.preventDefault(), I(g.value)), e.key === "Escape" && (b(!1), e.preventDefault(), g.value && !l.readOnly ? g.change("") : N === "expandable" ? V() : g.controlRef.current?.blur()));
89
89
  },
90
- className: c(a, "pf:border-0 pf:p-0 pf:text-label-13 pf:[&::-webkit-search-cancel-button]:appearance-none", j === "global" ? "pf:min-h-[38px]" : "pf:min-h-[26px]")
90
+ className: c(a, "pf:border-0 pf:p-0 pf:text-label-13 pf:[&::-webkit-search-cancel-button]:appearance-none", N === "global" ? "pf:min-h-[38px]" : "pf:min-h-[26px]")
91
91
  }),
92
- N && !g.value && /* @__PURE__ */ p("kbd", {
92
+ F && !g.value && /* @__PURE__ */ p("kbd", {
93
93
  className: "pf:shrink-0 pf:font-body pf:text-label-12 pf:text-soft-pearl-800",
94
- children: N.label
94
+ children: F.label
95
95
  }),
96
- (!!g.value || j === "expandable") && !l.readOnly && /* @__PURE__ */ p("button", {
96
+ (!!g.value || N === "expandable") && !l.readOnly && /* @__PURE__ */ p("button", {
97
97
  type: "button",
98
98
  "aria-label": `Clear ${l.label ?? l["aria-label"]}`,
99
- disabled: D?.isDisabled,
100
- onClick: () => {
101
- g.change(""), j === "expandable" ? z() : g.controlRef.current?.focus();
99
+ disabled: k?.isDisabled,
100
+ onClick: (e) => {
101
+ b(e.detail > 0), g.change(""), N === "expandable" ? V() : g.controlRef.current?.focus();
102
102
  },
103
- className: "pf:flex pf:size-[16px] pf:shrink-0 pf:items-center pf:justify-center pf:border-0 pf:bg-transparent pf:p-0 pf:text-soft-pearl-800 pf:focus-visible:outline-2 pf:focus-visible:outline-blue-700",
103
+ className: "pf:cursor-pointer pf:disabled:cursor-default pf:flex pf:size-[16px] pf:shrink-0 pf:items-center pf:justify-center pf:border-0 pf:bg-transparent pf:p-0 pf:text-soft-pearl-800 pf:focus-visible:outline-2 pf:focus-visible:outline-blue-700",
104
104
  children: /* @__PURE__ */ p(r, {
105
105
  size: 12,
106
106
  tone: "inherit"
@@ -109,31 +109,35 @@ var h = l(function(l, h) {
109
109
  /* @__PURE__ */ p("span", {
110
110
  role: "status",
111
111
  className: "pf:sr-only",
112
- children: M?.isLoading ? M.label ?? "Searching" : ""
112
+ children: P?.isLoading ? P.label ?? "Searching" : ""
113
113
  })
114
114
  ]
115
115
  })
116
116
  });
117
- return j === "expandable" ? /* @__PURE__ */ m("div", {
118
- className: c("pf:relative pf:max-w-full pf:overflow-hidden pf:transition-[width] pf:duration-200 pf:ease-(--pf-easing-out) pf:motion-reduce:transition-none", _ ? "pf:w-[220px]" : "pf:w-[28px]", F),
117
+ return N === "expandable" ? /* @__PURE__ */ m("div", {
118
+ className: c("pf:relative pf:min-w-0 pf:max-w-full pf:min-h-[28px]", y && "pf:motion-safe:transition-[width] pf:motion-safe:duration-180 pf:motion-safe:ease-[cubic-bezier(0.23,1,0.32,1)]", _ ? "pf:w-[220px]" : "pf:w-[28px]", L),
119
119
  children: [/* @__PURE__ */ p("div", {
120
- hidden: !_,
121
- children: W
120
+ "aria-hidden": !_,
121
+ ref: (e) => {
122
+ e?.toggleAttribute("inert", !_);
123
+ },
124
+ className: c("pf:w-full pf:max-w-[calc(100vw-48px)]", y && "pf:motion-safe:transition-opacity pf:motion-safe:duration-180 pf:motion-safe:ease-[cubic-bezier(0.23,1,0.32,1)]", _ ? "pf:opacity-100" : "pf:absolute pf:inset-0 pf:pointer-events-none pf:invisible pf:opacity-0 pf:duration-120!"),
125
+ children: K
122
126
  }), !_ && /* @__PURE__ */ p(t, {
123
- ref: y,
127
+ ref: x,
124
128
  label: l.label ?? l["aria-label"],
125
129
  size: "sm",
126
- disabled: D?.isDisabled,
127
- disabledReason: D?.reason,
128
- onClick: () => {
129
- v(!0);
130
+ disabled: k?.isDisabled,
131
+ disabledReason: k?.reason,
132
+ onClick: (e) => {
133
+ b(e.detail > 0), v(!0);
130
134
  },
131
135
  children: /* @__PURE__ */ p(n, {
132
136
  size: 16,
133
137
  tone: "inherit"
134
138
  })
135
139
  })]
136
- }) : W;
140
+ }) : K;
137
141
  });
138
142
  //#endregion
139
143
  export { h as Search };
@@ -10,7 +10,7 @@ import { Radio as l } from "@base-ui/react/radio";
10
10
  import { RadioGroup as u } from "@base-ui/react/radio-group";
11
11
  //#region src/components/segmented-control/SegmentedControl.tsx
12
12
  var d = ({ label: d, options: f, size: p = "md", className: m, disabled: h, disabledReason: g, onValueChange: _, "aria-describedby": v, ...y }) => {
13
- let { rootRef: b, indicator: x } = r(), S = a(), C = h ? g : void 0;
13
+ let { rootRef: b, indicatorRef: x } = r(), S = a(), C = h ? g : void 0;
14
14
  return /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ c(u, {
15
15
  ref: b,
16
16
  ...y,
@@ -19,11 +19,12 @@ var d = ({ label: d, options: f, size: p = "md", className: m, disabled: h, disa
19
19
  "aria-label": d,
20
20
  "aria-describedby": [v, C ? S : void 0].filter(Boolean).join(" ") || void 0,
21
21
  "data-size": p,
22
- className: i(i("pf-segmented-control pf:relative pf:isolate pf:inline-flex pf:box-border pf:max-w-full pf:items-stretch pf:gap-xxs pf:p-xxs", "pf:border-[0.5px] pf:border-solid pf:border-soft-pearl-300 pf:rounded-md pf:bg-soft-pearl-200"), m),
23
- children: [x && /* @__PURE__ */ s("span", {
22
+ className: i(i("pf-segmented-control pf:group/segments pf:relative pf:isolate pf:inline-flex pf:box-border pf:max-w-full pf:items-stretch pf:gap-xxs pf:p-xxs", "pf:border-[0.5px] pf:border-solid pf:border-soft-pearl-300 pf:rounded-md pf:bg-soft-pearl-200"), m),
23
+ children: [/* @__PURE__ */ s("span", {
24
+ ref: x,
25
+ hidden: !0,
24
26
  "aria-hidden": "true",
25
- style: x,
26
- className: "pf:absolute pf:left-0 pf:top-0 pf:-z-[1] pf:pointer-events-none pf:rounded-sm pf:bg-background pf:shadow-control pf:transition-[transform,width,height] pf:duration-200 pf:ease-(--pf-easing-out) pf:motion-reduce:transition-none"
27
+ className: "pf:absolute pf:left-0 pf:top-0 pf:origin-top-left pf:-z-[1] pf:pointer-events-none pf:rounded-sm pf:bg-background pf:shadow-control"
27
28
  }), f.map((r) => /* @__PURE__ */ s(t, {
28
29
  label: r.disabled && r.disabledReason ? `${r.label}: ${r.disabledReason}` : r.iconOnly ? r.label : void 0,
29
30
  children: /* @__PURE__ */ c(l.Root, {
@@ -31,7 +32,7 @@ var d = ({ label: d, options: f, size: p = "md", className: m, disabled: h, disa
31
32
  disabled: r.disabled,
32
33
  "aria-label": r.label,
33
34
  "aria-description": r.disabled ? r.disabledReason : void 0,
34
- className: i(i("pf-segment pf:box-border pf:inline-flex pf:items-center pf:justify-center pf:gap-sm pf:min-w-0 pf:py-xs", "pf:border-0 pf:rounded-sm pf:bg-transparent pf:text-soft-pearl-800 pf:font-body pf:text-[length:var(--pf-text-label-13)]", "pf:leading-[16px] pf:font-medium pf:cursor-pointer pf:wrap-anywhere pf:[&>span]:min-w-0", "pf:not-data-disabled:not-data-checked:hover:bg-soft-pearl-300 ", "pf:data-checked:not-data-disabled:text-soft-pearl-1000", !x && "pf:data-checked:bg-background pf:data-checked:shadow-control", "pf:focus-visible:z-[1] pf:data-disabled:text-soft-pearl-600 pf:data-disabled:cursor-not-allowed"), e, p === "sm" ? "pf:min-h-[24px] pf:px-md" : "pf:min-h-[28px] pf:px-lg"),
35
+ className: i(i("pf-segment pf:box-border pf:inline-flex pf:items-center pf:justify-center pf:gap-sm pf:min-w-0 pf:py-xs", "pf:border-0 pf:rounded-sm pf:bg-transparent pf:text-soft-pearl-800 pf:font-body pf:text-[length:var(--pf-text-label-13)]", "pf:leading-[16px] pf:font-medium pf:cursor-pointer pf:wrap-anywhere pf:[&>span]:min-w-0", "pf:not-data-disabled:not-data-checked:hover:bg-soft-pearl-300 ", "pf:data-checked:not-data-disabled:text-soft-pearl-1000", "pf:group-not-data-indicator/segments:data-checked:bg-background pf:group-not-data-indicator/segments:data-checked:shadow-control", "pf:focus-visible:z-[1] pf:data-disabled:text-soft-pearl-600 pf:data-disabled:cursor-not-allowed"), e, p === "sm" ? "pf:min-h-[24px] pf:px-md" : "pf:min-h-[28px] pf:px-lg"),
35
36
  children: [r.leadingIcon && /* @__PURE__ */ s(n, {
36
37
  size: 16,
37
38
  children: r.leadingIcon
@@ -69,7 +69,7 @@ function l({ config: l, field: u, multiple: d, resolved: f, open: p, anchorRef:
69
69
  onClick: () => {
70
70
  _(), u.triggerRef.current?.focus();
71
71
  },
72
- className: "pf:absolute pf:end-[28px] pf:top-1/2 pf:-translate-y-1/2 pf:flex pf:size-[16px] pf:items-center pf:justify-center pf:border-0 pf:bg-transparent pf:p-0 pf:text-soft-pearl-800 pf:rounded-xs pf:focus-visible:outline-2 pf:focus-visible:outline-blue-700 pf:disabled:opacity-50",
72
+ className: "pf:absolute pf:end-[28px] pf:top-1/2 pf:-translate-y-1/2 pf:flex pf:size-[16px] pf:items-center pf:justify-center pf:border-0 pf:bg-transparent pf:p-0 pf:text-soft-pearl-800 pf:rounded-xs pf:focus-visible:outline-2 pf:focus-visible:outline-blue-700 pf:disabled:opacity-50 pf:cursor-pointer pf:disabled:cursor-default",
73
73
  children: /* @__PURE__ */ s(e, {
74
74
  size: 16,
75
75
  tone: "inherit"
@@ -53,7 +53,8 @@ function u({ options: u, selected: d, config: f, highlighted: p, atLimit: m, onL
53
53
  }, r.value);
54
54
  return /* @__PURE__ */ a(s.List, {
55
55
  ref: _,
56
- className: "pf:overflow-y-auto pf:overscroll-contain pf:p-sm pf:flex pf:flex-col pf:gap-xxs",
56
+ "data-empty": u.length === 0 ? "" : void 0,
57
+ className: "pf:overflow-y-auto pf:overscroll-contain pf:p-sm pf:data-empty:p-0 pf:flex pf:flex-col pf:gap-xxs",
57
58
  style: { maxHeight: f.listConfig?.maxHeight ?? 320 },
58
59
  onScroll: (e) => {
59
60
  let t = e.currentTarget;