@photon-ai/pho-ui 2.6.0 → 2.7.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 (120) hide show
  1. package/dist/chunks/IconChevronDown-CZilB71T.js +11 -0
  2. package/dist/chunks/IconChevronDown-CZilB71T.js.map +1 -0
  3. package/dist/chunks/IconSearch-BKAHkLyX.js +14 -0
  4. package/dist/chunks/IconSearch-BKAHkLyX.js.map +1 -0
  5. package/dist/chunks/animated-height-CCO-Ocoz.js +48 -0
  6. package/dist/chunks/animated-height-CCO-Ocoz.js.map +1 -0
  7. package/dist/chunks/basic-page-DR5szOOs.js +1373 -0
  8. package/dist/chunks/basic-page-DR5szOOs.js.map +1 -0
  9. package/dist/chunks/{button-DNNs5RsT.js → button-CdqS_t5a.js} +62 -65
  10. package/dist/chunks/button-CdqS_t5a.js.map +1 -0
  11. package/dist/chunks/checkbox-Cdm08HWG.js +129 -0
  12. package/dist/chunks/checkbox-Cdm08HWG.js.map +1 -0
  13. package/dist/chunks/{choice-card-CunOnY9l.js → choice-card-BVNP1NB6.js} +2 -2
  14. package/dist/chunks/{choice-card-CunOnY9l.js.map → choice-card-BVNP1NB6.js.map} +1 -1
  15. package/dist/chunks/data-table-DwbPU0zt.js +2970 -0
  16. package/dist/chunks/data-table-DwbPU0zt.js.map +1 -0
  17. package/dist/chunks/{dialog-8SRNi_rv.js → dialog-BxKACOj5.js} +4 -4
  18. package/dist/chunks/{dialog-8SRNi_rv.js.map → dialog-BxKACOj5.js.map} +1 -1
  19. package/dist/chunks/{error-Crs-wqMC.js → error-D0yoFxCv.js} +2 -2
  20. package/dist/chunks/{error-Crs-wqMC.js.map → error-D0yoFxCv.js.map} +1 -1
  21. package/dist/chunks/is-react-component-DSnjtBmo.js +10 -0
  22. package/dist/chunks/is-react-component-DSnjtBmo.js.map +1 -0
  23. package/dist/chunks/link-provider-DXzDQ08N.js +24 -0
  24. package/dist/chunks/link-provider-DXzDQ08N.js.map +1 -0
  25. package/dist/chunks/rolldown-runtime-DG5F_Nuu.js +27 -0
  26. package/dist/chunks/{scroll-area-Bu7egArU.js → scroll-area-BO-9PMM7.js} +27 -26
  27. package/dist/chunks/scroll-area-BO-9PMM7.js.map +1 -0
  28. package/dist/chunks/sidebar-DVzZsCts.js +223 -0
  29. package/dist/chunks/sidebar-DVzZsCts.js.map +1 -0
  30. package/dist/chunks/skeleton-DwjSl4vC.js +18 -0
  31. package/dist/chunks/skeleton-DwjSl4vC.js.map +1 -0
  32. package/dist/chunks/{toast-DoXaRPIZ.js → toast-iSf6NuAS.js} +43 -45
  33. package/dist/chunks/toast-iSf6NuAS.js.map +1 -0
  34. package/dist/chunks/use-press-pulse-IbNstUT0.js +58 -0
  35. package/dist/chunks/use-press-pulse-IbNstUT0.js.map +1 -0
  36. package/dist/components/button.js +1 -1
  37. package/dist/components/checkbox.js +4 -126
  38. package/dist/components/command.js +54 -57
  39. package/dist/components/command.js.map +1 -1
  40. package/dist/components/data-table.js +11 -0
  41. package/dist/components/dialog.js +1 -1
  42. package/dist/components/error.js +1 -1
  43. package/dist/components/phone-input.js +609 -616
  44. package/dist/components/phone-input.js.map +1 -1
  45. package/dist/components/radio-group.js +2 -2
  46. package/dist/components/scroll-area.js +1 -1
  47. package/dist/components/select.js +35 -39
  48. package/dist/components/select.js.map +1 -1
  49. package/dist/components/skeleton.js +2 -15
  50. package/dist/components/toast.js +1 -1
  51. package/dist/index.js +94 -73
  52. package/dist/motion.js +89 -0
  53. package/dist/motion.js.map +1 -0
  54. package/dist/primitives/accordion.js +1 -1
  55. package/dist/primitives/alert-dialog.js +1 -1
  56. package/dist/primitives/autocomplete.js +1 -1
  57. package/dist/primitives/avatar.js +1 -1
  58. package/dist/primitives/button.js +1 -1
  59. package/dist/primitives/checkbox-group.js +1 -1
  60. package/dist/primitives/checkbox.js +1 -1
  61. package/dist/primitives/collapsible.js +1 -1
  62. package/dist/primitives/combobox.js +1 -1
  63. package/dist/primitives/context-menu.js +1 -1
  64. package/dist/primitives/csp-provider.js +1 -1
  65. package/dist/primitives/dialog.js +1 -1
  66. package/dist/primitives/direction-provider.js +1 -1
  67. package/dist/primitives/drawer.js +1 -1
  68. package/dist/primitives/field.js +1 -1
  69. package/dist/primitives/fieldset.js +1 -1
  70. package/dist/primitives/form.js +1 -1
  71. package/dist/primitives/input.js +1 -1
  72. package/dist/primitives/menu.js +1 -1
  73. package/dist/primitives/menubar.js +1 -1
  74. package/dist/primitives/meter.js +1 -1
  75. package/dist/primitives/navigation-menu.js +1 -1
  76. package/dist/primitives/number-field.js +1 -1
  77. package/dist/primitives/otp-field.js +1 -1
  78. package/dist/primitives/popover.js +1 -1
  79. package/dist/primitives/preview-card.js +1 -1
  80. package/dist/primitives/progress.js +1 -1
  81. package/dist/primitives/radio-group.js +1 -1
  82. package/dist/primitives/radio.js +1 -1
  83. package/dist/primitives/scroll-area.js +1 -1
  84. package/dist/primitives/select.js +1 -1
  85. package/dist/primitives/separator.js +1 -1
  86. package/dist/primitives/slider.js +1 -1
  87. package/dist/primitives/switch.js +1 -1
  88. package/dist/primitives/tabs.js +1 -1
  89. package/dist/primitives/toast.js +1 -1
  90. package/dist/primitives/toggle-group.js +1 -1
  91. package/dist/primitives/toggle.js +1 -1
  92. package/dist/primitives/toolbar.js +1 -1
  93. package/dist/primitives/tooltip.js +1 -1
  94. package/dist/primitives.js +3 -3
  95. package/dist/sections/basic-page.js +16 -14
  96. package/dist/sections/sidebar.js +1 -1
  97. package/dist/src/components/data-table/data-table.d.ts +227 -0
  98. package/dist/src/components/data-table/index.d.ts +2 -0
  99. package/dist/src/index.d.ts +1 -0
  100. package/dist/src/motion/index.d.ts +149 -0
  101. package/dist/src/sections/basic-page/basic-page.d.ts +47 -7
  102. package/dist/src/sections/basic-page/index.d.ts +1 -0
  103. package/dist/utils.js +13 -12
  104. package/package.json +10 -1
  105. package/dist/chunks/animated-height-C2eQstGy.js +0 -51
  106. package/dist/chunks/animated-height-C2eQstGy.js.map +0 -1
  107. package/dist/chunks/basic-page-DsI1xo6p.js +0 -1295
  108. package/dist/chunks/basic-page-DsI1xo6p.js.map +0 -1
  109. package/dist/chunks/button-DNNs5RsT.js.map +0 -1
  110. package/dist/chunks/link-provider-9TFNyDqO.js +0 -28
  111. package/dist/chunks/link-provider-9TFNyDqO.js.map +0 -1
  112. package/dist/chunks/rolldown-runtime-wKSmTnsc.js +0 -22
  113. package/dist/chunks/scroll-area-Bu7egArU.js.map +0 -1
  114. package/dist/chunks/sidebar-DvB-G0BP.js +0 -231
  115. package/dist/chunks/sidebar-DvB-G0BP.js.map +0 -1
  116. package/dist/chunks/toast-DoXaRPIZ.js.map +0 -1
  117. package/dist/chunks/use-press-pulse-8iorQPsh.js +0 -62
  118. package/dist/chunks/use-press-pulse-8iorQPsh.js.map +0 -1
  119. package/dist/components/checkbox.js.map +0 -1
  120. package/dist/components/skeleton.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as d } from "../chunks/cn-ChIgwEl3.js";
3
- import { r as m } from "../chunks/use-press-pulse-8iorQPsh.js";
4
- import { a as g, n as C, r as R, t as v } from "../chunks/choice-card-CunOnY9l.js";
3
+ import { r as m } from "../chunks/use-press-pulse-IbNstUT0.js";
4
+ import { a as g, n as C, r as R, t as v } from "../chunks/choice-card-BVNP1NB6.js";
5
5
  import { createContext as x, useContext as N } from "react";
6
6
  import { jsx as o, jsxs as h } from "react/jsx-runtime";
7
7
  import { motion as c } from "motion/react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { n as e, t as o } from "../chunks/scroll-area-Bu7egArU.js";
2
+ import { n as e, t as o } from "../chunks/scroll-area-BO-9PMM7.js";
3
3
  export {
4
4
  e as BLUR_MAX_PX,
5
5
  o as ScrollArea
@@ -1,18 +1,14 @@
1
1
  "use client";
2
2
  import { t as a } from "../chunks/cn-ChIgwEl3.js";
3
- import { r as p } from "../chunks/use-press-pulse-8iorQPsh.js";
4
- import { t as u } from "../chunks/IconCheck-D2WuculQ.js";
5
- import { createContext as m, useContext as g } from "react";
3
+ import { SPRING_PRESS_INLINE as p } from "../motion.js";
4
+ import { r as u } from "../chunks/use-press-pulse-IbNstUT0.js";
5
+ import { t as m } from "../chunks/IconCheck-D2WuculQ.js";
6
+ import { createContext as g, useContext as h } from "react";
6
7
  import { jsx as r } from "react/jsx-runtime";
7
- import { motion as h } from "motion/react";
8
+ import { motion as f } from "motion/react";
8
9
  import { Select as o } from "@base-ui/react/select";
9
- var c = m(!1), f = 0.99, y = {
10
- type: "spring",
11
- stiffness: 1100,
12
- damping: 40,
13
- mass: 0.04
14
- };
15
- function b({ multiple: e = !1, ...t }) {
10
+ var c = g(!1), y = 0.99, b = p;
11
+ function x({ multiple: e = !1, ...t }) {
16
12
  return /* @__PURE__ */ r(c.Provider, {
17
13
  value: !!e,
18
14
  children: /* @__PURE__ */ r(o.Root, {
@@ -21,28 +17,28 @@ function b({ multiple: e = !1, ...t }) {
21
17
  })
22
18
  });
23
19
  }
24
- var x = o.Value, v = o.Portal, I = o.List, N = o.Group, P = a("flex cursor-pointer items-center justify-between gap-2 text-base select-none", "transition-[color,background-color,box-shadow,outline-color] duration-150 ease-out", "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50", "[&_svg]:text-pho-secondary [&_svg]:size-4");
20
+ var v = o.Value, I = o.Portal, N = o.List, P = o.Group, S = a("flex cursor-pointer items-center justify-between gap-2 text-base select-none", "transition-[color,background-color,box-shadow,outline-color] duration-150 ease-out", "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50", "[&_svg]:text-pho-secondary [&_svg]:size-4");
25
21
  function w({ className: e, disabled: t, variant: n = "default", onPointerDown: s, ...i }) {
26
- const l = n === "inline", { motionProps: d } = p({
27
- scale: l ? f : 0.98,
28
- transition: l ? y : void 0,
22
+ const l = n === "inline", { motionProps: d } = u({
23
+ scale: l ? y : 0.98,
24
+ transition: l ? b : void 0,
29
25
  disabled: !!t
30
26
  });
31
27
  return /* @__PURE__ */ r(o.Trigger, {
32
28
  disabled: t,
33
29
  onPointerDown: s,
34
- render: /* @__PURE__ */ r(h.button, { ...d }),
35
- className: a(P, l ? "rounded-base min-w-0 bg-transparent focus-visible:outline-none" : a("bg-pho-primary ring-pho-primary text-pho-primary outline-pho-brand rounded-base min-w-44 px-3 py-2 ring-1 ring-inset", "data-[popup-open]:ring-pho-brand focus-visible:outline-2 focus-visible:-outline-offset-1"), e),
30
+ render: /* @__PURE__ */ r(f.button, { ...d }),
31
+ className: a(S, l ? "rounded-base min-w-0 bg-transparent focus-visible:outline-none" : a("bg-pho-primary ring-pho-primary text-pho-primary outline-pho-brand rounded-base min-w-44 px-3 py-2 ring-1 ring-inset", "data-[popup-open]:ring-pho-brand focus-visible:outline-2 focus-visible:-outline-offset-1"), e),
36
32
  ...i
37
33
  });
38
34
  }
39
- function S({ className: e, ...t }) {
35
+ function _({ className: e, ...t }) {
40
36
  return /* @__PURE__ */ r(o.Icon, {
41
37
  className: a("flex shrink-0 items-center", e),
42
38
  ...t
43
39
  });
44
40
  }
45
- function _({ className: e, sideOffset: t = 6, align: n = "start", alignItemWithTrigger: s = !1, ...i }) {
41
+ function E({ className: e, sideOffset: t = 6, align: n = "start", alignItemWithTrigger: s = !1, ...i }) {
46
42
  return /* @__PURE__ */ r(o.Positioner, {
47
43
  sideOffset: t,
48
44
  align: n,
@@ -51,26 +47,26 @@ function _({ className: e, sideOffset: t = 6, align: n = "start", alignItemWithT
51
47
  ...i
52
48
  });
53
49
  }
54
- function z({ className: e, ...t }) {
50
+ function R({ className: e, ...t }) {
55
51
  return /* @__PURE__ */ r(o.Popup, {
56
52
  className: a("bg-pho-primary text-pho-primary shadow-pho-lg ring-pho-secondary rounded-base max-h-[var(--available-height)] min-w-[var(--anchor-width)] origin-[var(--transform-origin)] overflow-y-auto p-1 ring-1 outline-none ring-inset", "transition-[transform,opacity] duration-[140ms] ease-[cubic-bezier(0.34,1.3,0.64,1)]", "data-[starting-style]:scale-95 data-[starting-style]:opacity-0", "data-[ending-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:duration-100 data-[ending-style]:ease-out", e),
57
53
  ...t
58
54
  });
59
55
  }
60
- function E({ className: e, ...t }) {
56
+ function G({ className: e, ...t }) {
61
57
  return /* @__PURE__ */ r(o.Item, {
62
58
  className: a("group/pho-item text-pho-secondary grid cursor-pointer grid-cols-[1rem_1fr] items-center gap-2 rounded-[calc(var(--radius-base)-4px)] py-1.5 pr-2.5 pl-2 text-base outline-none select-none", "data-[highlighted]:bg-pho-ghost-hover data-[highlighted]:text-pho-primary data-[disabled]:opacity-50", e),
63
59
  ...t
64
60
  });
65
61
  }
66
- function G({ className: e, ...t }) {
62
+ function L({ className: e, ...t }) {
67
63
  return /* @__PURE__ */ r(o.ItemText, {
68
64
  className: a("col-start-2 min-w-0", e),
69
65
  ...t
70
66
  });
71
67
  }
72
- function L({ className: e, children: t, ...n }) {
73
- const s = g(c), i = t ?? /* @__PURE__ */ r(u, {});
68
+ function z({ className: e, children: t, ...n }) {
69
+ const s = h(c), i = t ?? /* @__PURE__ */ r(m, {});
74
70
  return s ? /* @__PURE__ */ r("span", {
75
71
  "aria-hidden": !0,
76
72
  className: a("col-start-1 flex size-4 shrink-0 items-center justify-center rounded-sm ring-1 ring-inset", "bg-pho-primary ring-pho-primary text-pho-on-brand", "transition-[background-color,box-shadow,color] duration-150 ease-out", "group-data-[selected]/pho-item:bg-pho-brand-solid group-data-[selected]/pho-item:ring-transparent"),
@@ -85,29 +81,29 @@ function L({ className: e, children: t, ...n }) {
85
81
  children: i
86
82
  });
87
83
  }
88
- function R({ className: e, ...t }) {
84
+ function k({ className: e, ...t }) {
89
85
  return /* @__PURE__ */ r(o.GroupLabel, {
90
86
  className: a("text-pho-secondary px-2.5 py-1.5 text-xs font-medium", e),
91
87
  ...t
92
88
  });
93
89
  }
94
- var M = {
95
- Root: b,
90
+ var q = {
91
+ Root: x,
96
92
  Trigger: w,
97
- Value: x,
98
- Icon: S,
99
- Portal: v,
100
- Positioner: _,
101
- Popup: z,
102
- List: I,
103
- Item: E,
104
- ItemText: G,
105
- ItemIndicator: L,
106
- Group: N,
107
- GroupLabel: R
93
+ Value: v,
94
+ Icon: _,
95
+ Portal: I,
96
+ Positioner: E,
97
+ Popup: R,
98
+ List: N,
99
+ Item: G,
100
+ ItemText: L,
101
+ ItemIndicator: z,
102
+ Group: P,
103
+ GroupLabel: k
108
104
  };
109
105
  export {
110
- M as Select
106
+ q as Select
111
107
  };
112
108
 
113
109
  //# sourceMappingURL=select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","names":[],"sources":["../../src/components/select/select.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n type ComponentProps,\n type ElementType,\n type ReactNode,\n} from \"react\";\nimport { Select as BaseSelect } from \"@base-ui/react/select\";\nimport { motion } from \"motion/react\";\nimport { IconCheck } from \"@tabler/icons-react\";\nimport { cn } from \"../../utils/cn\";\nimport { usePressPulse } from \"../../utils/use-press-pulse\";\n\n/** Override Base UI's `string | (state) => string` className with plain string. */\ntype StyledProps<T extends ElementType> = Omit<\n ComponentProps<T>,\n \"className\"\n> & {\n className?: string;\n};\n\n/** Lets `ItemIndicator` know whether the Root is in `multiple` mode. */\nconst SelectMultipleContext = createContext(false);\n\nexport type SelectTriggerVariant = \"default\" | \"inline\";\n\n// Inline rides someone else's surface, so its pulse is shallower and snappier\n// than the default field's (0.98 / stiffness 700) — felt, not seen moving.\nconst INLINE_PRESS_SCALE = 0.99;\nconst INLINE_PRESS_SPRING = {\n type: \"spring\",\n stiffness: 1100,\n damping: 40,\n mass: 0.04,\n} as const;\n\nfunction Root({\n multiple = false,\n ...props\n}: ComponentProps<typeof BaseSelect.Root>) {\n return (\n <SelectMultipleContext.Provider value={Boolean(multiple)}>\n <BaseSelect.Root multiple={multiple} {...props} />\n </SelectMultipleContext.Provider>\n );\n}\n\nconst Value = BaseSelect.Value;\nconst Portal = BaseSelect.Portal;\nconst List = BaseSelect.List;\nconst Group = BaseSelect.Group;\n\n// Shared by both Trigger variants — layout, easing, disabled, icon tone.\nconst TRIGGER_BASE = cn(\n \"flex cursor-pointer items-center justify-between gap-2 text-base select-none\",\n // Colors/stroke ease briefly; transform stays out (Motion owns it).\n \"transition-[color,background-color,box-shadow,outline-color] duration-150 ease-out\",\n \"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\",\n \"[&_svg]:text-pho-secondary [&_svg]:size-4\",\n);\n\nfunction Trigger({\n className,\n disabled,\n variant = \"default\",\n onPointerDown,\n ...props\n}: StyledProps<typeof BaseSelect.Trigger> & {\n /**\n * `inline` drops the field chrome (ring, background, padding, min-width)\n * to ride a host surface — an Input Group addon, a toolbar — which then\n * carries the focus/open treatment. The press pulse moves to the arrow.\n * @default \"default\"\n */\n variant?: SelectTriggerVariant;\n}) {\n // One-shot press pulse (fires on pointer-down, always completes) — the\n // Effect Button gesture family adapted for a field-sized control. Both\n // variants pulse the whole trigger; inline is shallower and quicker.\n const inline = variant === \"inline\";\n const { motionProps } = usePressPulse({\n scale: inline ? INLINE_PRESS_SCALE : 0.98,\n transition: inline ? INLINE_PRESS_SPRING : undefined,\n disabled: Boolean(disabled),\n });\n\n return (\n <BaseSelect.Trigger\n disabled={disabled}\n onPointerDown={onPointerDown}\n // Motion owns transform; a caller-supplied `render` in props still wins.\n render={<motion.button {...motionProps} />}\n className={cn(\n TRIGGER_BASE,\n inline\n ? // Chrome-free: no surface of its own, text inherits the host\n // tone, and the host shows focus (e.g. Input Group's shared ring).\n \"rounded-base min-w-0 bg-transparent focus-visible:outline-none\"\n : cn(\n // Flat field surface — shadows are reserved for floating\n // layers; the 15% ring-pho-primary hairline is the input edge.\n \"bg-pho-primary ring-pho-primary text-pho-primary outline-pho-brand rounded-base min-w-44 px-3 py-2 ring-1 ring-inset\",\n \"data-[popup-open]:ring-pho-brand focus-visible:outline-2 focus-visible:-outline-offset-1\",\n ),\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction Icon({ className, ...props }: StyledProps<typeof BaseSelect.Icon>) {\n return (\n <BaseSelect.Icon\n className={cn(\"flex shrink-0 items-center\", className)}\n {...props}\n />\n );\n}\n\nfunction Positioner({\n className,\n sideOffset = 6,\n align = \"start\",\n alignItemWithTrigger = false,\n ...props\n}: StyledProps<typeof BaseSelect.Positioner>) {\n return (\n <BaseSelect.Positioner\n sideOffset={sideOffset}\n align={align}\n // Base UI defaults to the macOS-style overlap (popup covers the trigger\n // so the selected item sits on the value text) — disorienting in a page\n // flow, so Pho drops the list below the field like a menu instead.\n alignItemWithTrigger={alignItemWithTrigger}\n className={cn(\"z-50 outline-none\", className)}\n {...props}\n />\n );\n}\n\nfunction Popup({ className, ...props }: StyledProps<typeof BaseSelect.Popup>) {\n return (\n <BaseSelect.Popup\n className={cn(\n // Floating layer: keeps its elevation shadow, edged with the site\n // hairline (ring-pho-secondary, #eee/#202020).\n \"bg-pho-primary text-pho-primary shadow-pho-lg ring-pho-secondary rounded-base max-h-[var(--available-height)] min-w-[var(--anchor-width)] origin-[var(--transform-origin)] overflow-y-auto p-1 ring-1 outline-none ring-inset\",\n // Effect-Button animation family, faster: the open springs from the\n // trigger edge with a slight overshoot; close is a quick ease-out.\n \"transition-[transform,opacity] duration-[140ms] ease-[cubic-bezier(0.34,1.3,0.64,1)]\",\n \"data-[starting-style]:scale-95 data-[starting-style]:opacity-0\",\n \"data-[ending-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:duration-100 data-[ending-style]:ease-out\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction Item({ className, ...props }: StyledProps<typeof BaseSelect.Item>) {\n return (\n <BaseSelect.Item\n className={cn(\n // Fixed 1rem leading column: the selection mark lives there, so every\n // label starts at the same x whether or not it is selected.\n // `group/pho-item` feeds the multiple-mode checkbox indicator.\n \"group/pho-item text-pho-secondary grid cursor-pointer grid-cols-[1rem_1fr] items-center gap-2 rounded-[calc(var(--radius-base)-4px)] py-1.5 pr-2.5 pl-2 text-base outline-none select-none\",\n // Secondary at rest; highlight lifts to primary + ghost wash (Menu idiom).\n \"data-[highlighted]:bg-pho-ghost-hover data-[highlighted]:text-pho-primary data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemText({\n className,\n ...props\n}: StyledProps<typeof BaseSelect.ItemText>) {\n return (\n <BaseSelect.ItemText\n // Pin to column 2: when the single-select indicator unmounts, grid\n // auto-placement would otherwise pull the label into the mark column.\n className={cn(\"col-start-2 min-w-0\", className)}\n {...props}\n />\n );\n}\n\n/**\n * Leading selection mark, mode-aware. Single: a brand check that appears in\n * the reserved column. Multiple: an always-visible checkbox box that fills\n * with the same quiet fill/stroke ease as the standalone Checkbox.\n */\nfunction ItemIndicator({\n className,\n children,\n ...props\n}: StyledProps<typeof BaseSelect.ItemIndicator> & { children?: ReactNode }) {\n const multiple = useContext(SelectMultipleContext);\n const mark = children ?? <IconCheck />;\n\n if (multiple) {\n return (\n <span\n aria-hidden\n className={cn(\n \"col-start-1 flex size-4 shrink-0 items-center justify-center rounded-sm ring-1 ring-inset\",\n \"bg-pho-primary ring-pho-primary text-pho-on-brand\",\n // Fill + stroke ease together on toggle — Checkbox's transition.\n \"transition-[background-color,box-shadow,color] duration-150 ease-out\",\n \"group-data-[selected]/pho-item:bg-pho-brand-solid group-data-[selected]/pho-item:ring-transparent\",\n )}\n >\n <BaseSelect.ItemIndicator\n className={cn(\n \"flex items-center justify-center [&>svg]:size-3\",\n // Glyph pops with the fill; exits on the same path.\n \"transition-[transform,opacity] duration-150 ease-out\",\n \"data-[starting-style]:scale-50 data-[starting-style]:opacity-0\",\n \"data-[ending-style]:scale-50 data-[ending-style]:opacity-0\",\n className,\n )}\n {...props}\n >\n {mark}\n </BaseSelect.ItemIndicator>\n </span>\n );\n }\n\n return (\n <BaseSelect.ItemIndicator\n className={cn(\n \"text-pho-brand col-start-1 flex size-4 items-center justify-center [&>svg]:size-4\",\n className,\n )}\n {...props}\n >\n {mark}\n </BaseSelect.ItemIndicator>\n );\n}\n\nfunction GroupLabel({\n className,\n ...props\n}: StyledProps<typeof BaseSelect.GroupLabel>) {\n return (\n <BaseSelect.GroupLabel\n className={cn(\n \"text-pho-secondary px-2.5 py-1.5 text-xs font-medium\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Select built on Base UI `Select` — pick one option (or several with\n * `multiple`) from a list that opens below the trigger on click; the pattern\n * other design systems call a picker. Pass `items` to `Select.Root`, render an\n * `Item` per option, and show the selection with `Select.Value`. For a short,\n * always-visible set use `RadioGroup`; to filter a long list by typing use\n * `Combobox`.\n */\nexport const Select = {\n Root,\n Trigger,\n Value,\n Icon,\n Portal,\n Positioner,\n Popup,\n List,\n Item,\n ItemText,\n ItemIndicator,\n Group,\n GroupLabel,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"select.js","names":[],"sources":["../../src/components/select/select.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n type ComponentProps,\n type ElementType,\n type ReactNode,\n} from \"react\";\nimport { Select as BaseSelect } from \"@base-ui/react/select\";\nimport { SPRING_PRESS_INLINE } from \"../../motion\";\nimport { motion } from \"motion/react\";\nimport { IconCheck } from \"@tabler/icons-react\";\nimport { cn } from \"../../utils/cn\";\nimport { usePressPulse } from \"../../utils/use-press-pulse\";\n\n/** Override Base UI's `string | (state) => string` className with plain string. */\ntype StyledProps<T extends ElementType> = Omit<\n ComponentProps<T>,\n \"className\"\n> & {\n className?: string;\n};\n\n/** Lets `ItemIndicator` know whether the Root is in `multiple` mode. */\nconst SelectMultipleContext = createContext(false);\n\nexport type SelectTriggerVariant = \"default\" | \"inline\";\n\n// Inline rides someone else's surface, so its pulse is shallower and snappier\n// than the default field's (0.98 / stiffness 700) — felt, not seen moving.\nconst INLINE_PRESS_SCALE = 0.99;\nconst INLINE_PRESS_SPRING = SPRING_PRESS_INLINE;\n\nfunction Root({\n multiple = false,\n ...props\n}: ComponentProps<typeof BaseSelect.Root>) {\n return (\n <SelectMultipleContext.Provider value={Boolean(multiple)}>\n <BaseSelect.Root multiple={multiple} {...props} />\n </SelectMultipleContext.Provider>\n );\n}\n\nconst Value = BaseSelect.Value;\nconst Portal = BaseSelect.Portal;\nconst List = BaseSelect.List;\nconst Group = BaseSelect.Group;\n\n// Shared by both Trigger variants — layout, easing, disabled, icon tone.\nconst TRIGGER_BASE = cn(\n \"flex cursor-pointer items-center justify-between gap-2 text-base select-none\",\n // Colors/stroke ease briefly; transform stays out (Motion owns it).\n \"transition-[color,background-color,box-shadow,outline-color] duration-150 ease-out\",\n \"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\",\n \"[&_svg]:text-pho-secondary [&_svg]:size-4\",\n);\n\nfunction Trigger({\n className,\n disabled,\n variant = \"default\",\n onPointerDown,\n ...props\n}: StyledProps<typeof BaseSelect.Trigger> & {\n /**\n * `inline` drops the field chrome (ring, background, padding, min-width)\n * to ride a host surface — an Input Group addon, a toolbar — which then\n * carries the focus/open treatment. The press pulse moves to the arrow.\n * @default \"default\"\n */\n variant?: SelectTriggerVariant;\n}) {\n // One-shot press pulse (fires on pointer-down, always completes) — the\n // Effect Button gesture family adapted for a field-sized control. Both\n // variants pulse the whole trigger; inline is shallower and quicker.\n const inline = variant === \"inline\";\n const { motionProps } = usePressPulse({\n scale: inline ? INLINE_PRESS_SCALE : 0.98,\n transition: inline ? INLINE_PRESS_SPRING : undefined,\n disabled: Boolean(disabled),\n });\n\n return (\n <BaseSelect.Trigger\n disabled={disabled}\n onPointerDown={onPointerDown}\n // Motion owns transform; a caller-supplied `render` in props still wins.\n render={<motion.button {...motionProps} />}\n className={cn(\n TRIGGER_BASE,\n inline\n ? // Chrome-free: no surface of its own, text inherits the host\n // tone, and the host shows focus (e.g. Input Group's shared ring).\n \"rounded-base min-w-0 bg-transparent focus-visible:outline-none\"\n : cn(\n // Flat field surface — shadows are reserved for floating\n // layers; the 15% ring-pho-primary hairline is the input edge.\n \"bg-pho-primary ring-pho-primary text-pho-primary outline-pho-brand rounded-base min-w-44 px-3 py-2 ring-1 ring-inset\",\n \"data-[popup-open]:ring-pho-brand focus-visible:outline-2 focus-visible:-outline-offset-1\",\n ),\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction Icon({ className, ...props }: StyledProps<typeof BaseSelect.Icon>) {\n return (\n <BaseSelect.Icon\n className={cn(\"flex shrink-0 items-center\", className)}\n {...props}\n />\n );\n}\n\nfunction Positioner({\n className,\n sideOffset = 6,\n align = \"start\",\n alignItemWithTrigger = false,\n ...props\n}: StyledProps<typeof BaseSelect.Positioner>) {\n return (\n <BaseSelect.Positioner\n sideOffset={sideOffset}\n align={align}\n // Base UI defaults to the macOS-style overlap (popup covers the trigger\n // so the selected item sits on the value text) — disorienting in a page\n // flow, so Pho drops the list below the field like a menu instead.\n alignItemWithTrigger={alignItemWithTrigger}\n className={cn(\"z-50 outline-none\", className)}\n {...props}\n />\n );\n}\n\nfunction Popup({ className, ...props }: StyledProps<typeof BaseSelect.Popup>) {\n return (\n <BaseSelect.Popup\n className={cn(\n // Floating layer: keeps its elevation shadow, edged with the site\n // hairline (ring-pho-secondary, #eee/#202020).\n \"bg-pho-primary text-pho-primary shadow-pho-lg ring-pho-secondary rounded-base max-h-[var(--available-height)] min-w-[var(--anchor-width)] origin-[var(--transform-origin)] overflow-y-auto p-1 ring-1 outline-none ring-inset\",\n // Effect-Button animation family, faster: the open springs from the\n // trigger edge with a slight overshoot; close is a quick ease-out.\n \"transition-[transform,opacity] duration-[140ms] ease-[cubic-bezier(0.34,1.3,0.64,1)]\",\n \"data-[starting-style]:scale-95 data-[starting-style]:opacity-0\",\n \"data-[ending-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:duration-100 data-[ending-style]:ease-out\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction Item({ className, ...props }: StyledProps<typeof BaseSelect.Item>) {\n return (\n <BaseSelect.Item\n className={cn(\n // Fixed 1rem leading column: the selection mark lives there, so every\n // label starts at the same x whether or not it is selected.\n // `group/pho-item` feeds the multiple-mode checkbox indicator.\n \"group/pho-item text-pho-secondary grid cursor-pointer grid-cols-[1rem_1fr] items-center gap-2 rounded-[calc(var(--radius-base)-4px)] py-1.5 pr-2.5 pl-2 text-base outline-none select-none\",\n // Secondary at rest; highlight lifts to primary + ghost wash (Menu idiom).\n \"data-[highlighted]:bg-pho-ghost-hover data-[highlighted]:text-pho-primary data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemText({\n className,\n ...props\n}: StyledProps<typeof BaseSelect.ItemText>) {\n return (\n <BaseSelect.ItemText\n // Pin to column 2: when the single-select indicator unmounts, grid\n // auto-placement would otherwise pull the label into the mark column.\n className={cn(\"col-start-2 min-w-0\", className)}\n {...props}\n />\n );\n}\n\n/**\n * Leading selection mark, mode-aware. Single: a brand check that appears in\n * the reserved column. Multiple: an always-visible checkbox box that fills\n * with the same quiet fill/stroke ease as the standalone Checkbox.\n */\nfunction ItemIndicator({\n className,\n children,\n ...props\n}: StyledProps<typeof BaseSelect.ItemIndicator> & { children?: ReactNode }) {\n const multiple = useContext(SelectMultipleContext);\n const mark = children ?? <IconCheck />;\n\n if (multiple) {\n return (\n <span\n aria-hidden\n className={cn(\n \"col-start-1 flex size-4 shrink-0 items-center justify-center rounded-sm ring-1 ring-inset\",\n \"bg-pho-primary ring-pho-primary text-pho-on-brand\",\n // Fill + stroke ease together on toggle — Checkbox's transition.\n \"transition-[background-color,box-shadow,color] duration-150 ease-out\",\n \"group-data-[selected]/pho-item:bg-pho-brand-solid group-data-[selected]/pho-item:ring-transparent\",\n )}\n >\n <BaseSelect.ItemIndicator\n className={cn(\n \"flex items-center justify-center [&>svg]:size-3\",\n // Glyph pops with the fill; exits on the same path.\n \"transition-[transform,opacity] duration-150 ease-out\",\n \"data-[starting-style]:scale-50 data-[starting-style]:opacity-0\",\n \"data-[ending-style]:scale-50 data-[ending-style]:opacity-0\",\n className,\n )}\n {...props}\n >\n {mark}\n </BaseSelect.ItemIndicator>\n </span>\n );\n }\n\n return (\n <BaseSelect.ItemIndicator\n className={cn(\n \"text-pho-brand col-start-1 flex size-4 items-center justify-center [&>svg]:size-4\",\n className,\n )}\n {...props}\n >\n {mark}\n </BaseSelect.ItemIndicator>\n );\n}\n\nfunction GroupLabel({\n className,\n ...props\n}: StyledProps<typeof BaseSelect.GroupLabel>) {\n return (\n <BaseSelect.GroupLabel\n className={cn(\n \"text-pho-secondary px-2.5 py-1.5 text-xs font-medium\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Select built on Base UI `Select` — pick one option (or several with\n * `multiple`) from a list that opens below the trigger on click; the pattern\n * other design systems call a picker. Pass `items` to `Select.Root`, render an\n * `Item` per option, and show the selection with `Select.Value`. For a short,\n * always-visible set use `RadioGroup`; to filter a long list by typing use\n * `Combobox`.\n */\nexport const Select = {\n Root,\n Trigger,\n Value,\n Icon,\n Portal,\n Positioner,\n Popup,\n List,\n Item,\n ItemText,\n ItemIndicator,\n Group,\n GroupLabel,\n};\n"],"mappings":"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"}
@@ -1,18 +1,5 @@
1
1
  "use client";
2
- import { t } from "../chunks/cn-ChIgwEl3.js";
3
- import { forwardRef as n } from "react";
4
- import { jsx as a } from "react/jsx-runtime";
5
- var i = n(function({ className: e, ...o }, r) {
6
- return /* @__PURE__ */ a("div", {
7
- ref: r,
8
- "aria-hidden": !0,
9
- className: t("bg-pho-secondary animate-pho-skeleton rounded-sm", e),
10
- ...o
11
- });
12
- });
13
- i.displayName = "Skeleton";
2
+ import { t } from "../chunks/skeleton-DwjSl4vC.js";
14
3
  export {
15
- i as Skeleton
4
+ t as Skeleton
16
5
  };
17
-
18
- //# sourceMappingURL=skeleton.js.map
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { n as o, t as s } from "../chunks/toast-DoXaRPIZ.js";
2
+ import { n as o, t as s } from "../chunks/toast-iSf6NuAS.js";
3
3
  export {
4
4
  s as Toast,
5
5
  o as Toasty
package/dist/index.js CHANGED
@@ -1,80 +1,101 @@
1
1
  "use client";
2
2
  import { t as a } from "./chunks/cn-ChIgwEl3.js";
3
- import { n as r, r as E, t as o } from "./chunks/link-provider-9TFNyDqO.js";
4
- import { t as S } from "./chunks/resolve-variant-CcD8iG5l.js";
5
- import { n as A, r as T, t as I } from "./chunks/use-press-pulse-8iorQPsh.js";
3
+ import { t } from "./chunks/is-react-component-DSnjtBmo.js";
4
+ import { t as r } from "./chunks/resolve-variant-CcD8iG5l.js";
5
+ import { n as o, t as A } from "./chunks/link-provider-DXzDQ08N.js";
6
+ import { BAR_RISE_PX as I, BLUR_PX as i, EASE_POP as T, EASE_STACK as m, FADE_ENTRANCE as e, FADE_SWAP as n, PRESS_SCALE as P, PRESS_SCALE_ROW as C, RISE_PX as N, SPRING_ENTRANCE as B, SPRING_PRESS as p, SPRING_PRESS_INLINE as O, SPRING_PRESS_QUICK as f, SPRING_SETTLE as u, TRAVEL_LINEAR as L, fadeThroughBlur as D, riseIn as l } from "./motion.js";
7
+ import { n as c, r as G, t as U } from "./chunks/use-press-pulse-IbNstUT0.js";
6
8
  import "./utils.js";
7
- import { a as m, c as R, d as B, i as p, l as C, n as O, o as f, r as u, s as N, t as P, u as D } from "./chunks/button-DNNs5RsT.js";
8
- import { a as V, c, i as l, l as U, n as G, o as d, r as M, s as b, t as g } from "./chunks/error-Crs-wqMC.js";
9
- import { a as F, c as W, d as h, f as v, i as Z, l as w, m as x, n as H, o as Y, p as z, r as X, s as j, t as q, u as y } from "./chunks/basic-page-DsI1xo6p.js";
10
- import { a as K, c as Q, i as $, n as ss, o as as, r as ts, s as rs, t as Es } from "./chunks/sidebar-DvB-G0BP.js";
11
- import { t as _s } from "./chunks/input-DjvZoF8v.js";
12
- import { t as is } from "./chunks/close-button-GvqWbLl0.js";
13
- import { t as Ts } from "./chunks/input-group-fc9_jD4d.js";
14
- import { n as ns, t as es } from "./chunks/card-DSW3Uhag.js";
15
- import { n as Rs, t as Bs } from "./chunks/dialog-8SRNi_rv.js";
16
- import { i as Cs, n as Os, r as fs, t as us } from "./chunks/status-view-C8tabjDu.js";
9
+ import { a as F, c as W, d as b, i as g, l as h, n as k, o as X, r as v, s as Z, t as w, u as x } from "./chunks/button-CdqS_t5a.js";
10
+ import { a as K, c as Y, i as z, l as Q, n as j, o as q, r as y, s as J, t as $ } from "./chunks/error-D0yoFxCv.js";
11
+ import { a as as, c as Es, d as ts, f as _s, i as rs, l as Ss, m as os, n as As, o as Rs, p as Is, r as is, s as Ts, t as ms, u as es } from "./chunks/basic-page-DR5szOOs.js";
12
+ import { o as Ps } from "./chunks/data-table-DwbPU0zt.js";
13
+ import { a as Ns, c as Bs, i as ps, n as Os, o as fs, r as us, s as Ls, t as Ds } from "./chunks/sidebar-DVzZsCts.js";
14
+ import { t as Vs } from "./chunks/input-DjvZoF8v.js";
15
+ import { t as Gs } from "./chunks/close-button-GvqWbLl0.js";
16
+ import { t as ds } from "./chunks/input-group-fc9_jD4d.js";
17
+ import { n as Fs, t as Ws } from "./chunks/card-DSW3Uhag.js";
18
+ import { n as gs, t as hs } from "./chunks/dialog-BxKACOj5.js";
19
+ import { i as Xs, n as vs, r as Zs, t as ws } from "./chunks/status-view-C8tabjDu.js";
17
20
  import "./components/status-view.js";
18
21
  export {
19
- q as AUTO_SAVE_DELAY_MS,
20
- H as BASIC_PAGE_CALLOUT,
21
- X as BASIC_PAGE_CARD,
22
- Z as BASIC_PAGE_ITEM,
23
- F as BASIC_PAGE_ITEM_PANEL,
24
- Y as BASIC_PAGE_ITEM_PANEL_DIVIDED,
25
- j as BASIC_PAGE_ROW,
26
- P as BUTTON_COLORS,
27
- O as BUTTON_SHAPES,
28
- u as BUTTON_SIZES,
29
- p as BUTTON_VARIANTS,
30
- W as BasicPage,
31
- m as Button,
32
- f as ButtonLink,
33
- es as CARD_SURFACE,
34
- w as CONDENSE_BAR_ENTER,
35
- y as CONDENSE_BAR_RISE_PX,
36
- h as CONDENSE_BAR_TRAVEL,
37
- I as CONTROL_PRESS_SCALE,
38
- A as CONTROL_PRESS_SPRING,
39
- ns as Card,
40
- is as CloseButton,
41
- Bs as Dialog,
42
- N as EFFECT_BUTTON_SIZES,
43
- R as EffectButton,
44
- C as EffectButtonLink,
45
- g as Error,
46
- G as ErrorView,
47
- M as GENERIC_ERROR_TITLE,
48
- _s as Input,
49
- Ts as InputGroup,
50
- o as LinkProvider,
51
- Es as SIDEBAR_HEADER_INSET,
52
- ss as SIDEBAR_ITEM,
53
- ts as SIDEBAR_ITEM_ACTIVE,
54
- $ as SIDEBAR_ITEM_INACTIVE,
55
- K as SIDEBAR_ROOT,
56
- as as SIDEBAR_ROOT_BASE,
57
- rs as SIDEBAR_ROOT_INSET,
58
- us as STATUS_VIEW,
59
- Os as STATUS_VIEW_COPY,
60
- fs as STATUS_VIEW_SIZES,
61
- Q as Sidebar,
62
- Cs as StatusView,
63
- D as buttonVariants,
64
- l as capitalizeFirst,
22
+ ms as AUTO_SAVE_DELAY_MS,
23
+ I as BAR_RISE_PX,
24
+ As as BASIC_PAGE_CALLOUT,
25
+ is as BASIC_PAGE_CARD,
26
+ rs as BASIC_PAGE_ITEM,
27
+ as as BASIC_PAGE_ITEM_PANEL,
28
+ Rs as BASIC_PAGE_ITEM_PANEL_DIVIDED,
29
+ Ts as BASIC_PAGE_ROW,
30
+ i as BLUR_PX,
31
+ w as BUTTON_COLORS,
32
+ k as BUTTON_SHAPES,
33
+ v as BUTTON_SIZES,
34
+ g as BUTTON_VARIANTS,
35
+ Es as BasicPage,
36
+ F as Button,
37
+ X as ButtonLink,
38
+ Ws as CARD_SURFACE,
39
+ Ss as CONDENSE_BAR_ENTER,
40
+ es as CONDENSE_BAR_RISE_PX,
41
+ ts as CONDENSE_BAR_TRAVEL,
42
+ U as CONTROL_PRESS_SCALE,
43
+ c as CONTROL_PRESS_SPRING,
44
+ Fs as Card,
45
+ Gs as CloseButton,
46
+ hs as Dialog,
47
+ T as EASE_POP,
48
+ m as EASE_STACK,
49
+ Z as EFFECT_BUTTON_SIZES,
50
+ W as EffectButton,
51
+ h as EffectButtonLink,
52
+ $ as Error,
53
+ j as ErrorView,
54
+ e as FADE_ENTRANCE,
55
+ n as FADE_SWAP,
56
+ y as GENERIC_ERROR_TITLE,
57
+ Vs as Input,
58
+ ds as InputGroup,
59
+ A as LinkProvider,
60
+ P as PRESS_SCALE,
61
+ C as PRESS_SCALE_ROW,
62
+ N as RISE_PX,
63
+ Ds as SIDEBAR_HEADER_INSET,
64
+ Os as SIDEBAR_ITEM,
65
+ us as SIDEBAR_ITEM_ACTIVE,
66
+ ps as SIDEBAR_ITEM_INACTIVE,
67
+ Ns as SIDEBAR_ROOT,
68
+ fs as SIDEBAR_ROOT_BASE,
69
+ Ls as SIDEBAR_ROOT_INSET,
70
+ B as SPRING_ENTRANCE,
71
+ p as SPRING_PRESS,
72
+ O as SPRING_PRESS_INLINE,
73
+ f as SPRING_PRESS_QUICK,
74
+ u as SPRING_SETTLE,
75
+ ws as STATUS_VIEW,
76
+ vs as STATUS_VIEW_COPY,
77
+ Zs as STATUS_VIEW_SIZES,
78
+ Bs as Sidebar,
79
+ Xs as StatusView,
80
+ L as TRAVEL_LINEAR,
81
+ x as buttonVariants,
82
+ z as capitalizeFirst,
65
83
  a as cn,
66
- V as describeError,
67
- B as effectButtonVariants,
68
- v as formToasts,
69
- d as httpReasonPhrase,
70
- b as httpStatusExplanation,
71
- c as isProblem,
72
- E as isReactComponent,
73
- U as parseProblem,
74
- S as resolveVariant,
75
- z as useAutoSave,
76
- x as useCondense,
77
- Rs as useDialogPending,
78
- r as useLinkComponent,
79
- T as usePressPulse
84
+ Ps as createColumns,
85
+ K as describeError,
86
+ b as effectButtonVariants,
87
+ D as fadeThroughBlur,
88
+ _s as formToasts,
89
+ q as httpReasonPhrase,
90
+ J as httpStatusExplanation,
91
+ Y as isProblem,
92
+ t as isReactComponent,
93
+ Q as parseProblem,
94
+ r as resolveVariant,
95
+ l as riseIn,
96
+ Is as useAutoSave,
97
+ os as useCondense,
98
+ gs as useDialogPending,
99
+ o as useLinkComponent,
100
+ G as usePressPulse
80
101
  };
package/dist/motion.js ADDED
@@ -0,0 +1,89 @@
1
+ "use client";
2
+ var r = {
3
+ type: "spring",
4
+ stiffness: 400,
5
+ damping: 40
6
+ }, s = {
7
+ type: "spring",
8
+ stiffness: 640,
9
+ damping: 50
10
+ }, n = {
11
+ type: "spring",
12
+ stiffness: 200,
13
+ damping: 30,
14
+ mass: 0.1
15
+ }, p = {
16
+ type: "spring",
17
+ stiffness: 700,
18
+ damping: 32,
19
+ mass: 0.06
20
+ }, E = {
21
+ type: "spring",
22
+ stiffness: 1100,
23
+ damping: 40,
24
+ mass: 0.04
25
+ }, t = {
26
+ duration: 0.25,
27
+ ease: "easeOut"
28
+ }, e = {
29
+ duration: 0.2,
30
+ ease: "easeOut"
31
+ }, S = {
32
+ duration: 0.2,
33
+ ease: "linear"
34
+ }, R = "cubic-bezier(0.34, 1.3, 0.64, 1)", _ = "cubic-bezier(0.22, 1, 0.36, 1)", f = 12, u = -8, P = 0.96, o = 0.97, v = 1;
35
+ function y(a) {
36
+ const i = a ? "blur(0px)" : "blur(1px)";
37
+ return {
38
+ initial: {
39
+ opacity: 0,
40
+ filter: i
41
+ },
42
+ animate: {
43
+ opacity: 1,
44
+ filter: "blur(0px)"
45
+ },
46
+ exit: {
47
+ opacity: 0,
48
+ filter: i
49
+ },
50
+ transition: a ? { duration: 0 } : e
51
+ };
52
+ }
53
+ function c(a) {
54
+ return {
55
+ initial: a ? !1 : {
56
+ opacity: 0,
57
+ y: 12
58
+ },
59
+ animate: {
60
+ opacity: 1,
61
+ y: 0
62
+ },
63
+ transition: {
64
+ y: r,
65
+ opacity: t
66
+ }
67
+ };
68
+ }
69
+ export {
70
+ u as BAR_RISE_PX,
71
+ v as BLUR_PX,
72
+ R as EASE_POP,
73
+ _ as EASE_STACK,
74
+ t as FADE_ENTRANCE,
75
+ e as FADE_SWAP,
76
+ P as PRESS_SCALE,
77
+ o as PRESS_SCALE_ROW,
78
+ f as RISE_PX,
79
+ r as SPRING_ENTRANCE,
80
+ n as SPRING_PRESS,
81
+ E as SPRING_PRESS_INLINE,
82
+ p as SPRING_PRESS_QUICK,
83
+ s as SPRING_SETTLE,
84
+ S as TRAVEL_LINEAR,
85
+ y as fadeThroughBlur,
86
+ c as riseIn
87
+ };
88
+
89
+ //# sourceMappingURL=motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.js","names":[],"sources":["../src/motion/index.ts"],"sourcesContent":["/**\n * The motion vocabulary — every animation in Pho speaks it. Five springs,\n * three timings, two CSS eases, and a handful of distances cover the\n * system; components import from here and add nothing of their own.\n *\n * The grammar:\n * - **Arrive** on `SPRING_ENTRANCE` with `FADE_ENTRANCE` — content\n * surfaces, it doesn't slide in.\n * - **Swap** on `FADE_SWAP`, displacement on `TRAVEL_LINEAR` — crossfades\n * ease out, travel is linear.\n * - **Press** on the press springs — deeper mass for bigger surfaces.\n * - **Follow** on `SPRING_SETTLE` — heights and reflows chase content.\n */\n\n/**\n * Pages arrive on this — the `Stack` entrance, `Reveal`, `Title` / `Header`\n * enter, the Title ↔ Back morph, `Alert` / `Footer` height reveals.\n * Measured off a 60fps iOS push: ~330ms, a long gentle glide, everything\n * co-landing; essentially critically damped (overshoot would flash\n * clipped content).\n */\nexport const SPRING_ENTRANCE = {\n type: \"spring\",\n stiffness: 400,\n damping: 40,\n} as const;\n\n/**\n * Layout follows content on this — `AnimatedHeight`, a command palette's\n * rows gliding into new places. Stiffer than the entrance: reflow should\n * settle before it reads as motion.\n */\nexport const SPRING_SETTLE = {\n type: \"spring\",\n stiffness: 640,\n damping: 50,\n} as const;\n\n/**\n * The press pulse for full-size surfaces — `Button`, a sidebar row.\n * Framer source: `spring-physics 200 30 0.1`.\n */\nexport const SPRING_PRESS = {\n type: \"spring\",\n stiffness: 200,\n damping: 30,\n mass: 0.1,\n} as const;\n\n/** The press pulse for small controls — toggles, checks; quick and light. */\nexport const SPRING_PRESS_QUICK = {\n type: \"spring\",\n stiffness: 700,\n damping: 32,\n mass: 0.06,\n} as const;\n\n/** The press pulse for inline triggers — a `Select` sitting in text. */\nexport const SPRING_PRESS_INLINE = {\n type: \"spring\",\n stiffness: 1100,\n damping: 40,\n mass: 0.04,\n} as const;\n\n/** The fade that rides `SPRING_ENTRANCE` — spans most of the glide. */\nexport const FADE_ENTRANCE = { duration: 0.25, ease: \"easeOut\" } as const;\n\n/**\n * The swap — crossfading faces, a condensed bar arriving, a saved word,\n * an aside changing pages. Fades ease out.\n */\nexport const FADE_SWAP = { duration: 0.2, ease: \"easeOut\" } as const;\n\n/**\n * Displacement — a bar's rise, a drawer's scope swap, a search box's\n * width. Travel is linear: the eye reads speed changes as personality,\n * and furniture has none.\n */\nexport const TRAVEL_LINEAR = { duration: 0.2, ease: \"linear\" } as const;\n\n/** CSS pop-in for floating layers (menus, select popups) — slight overshoot. */\nexport const EASE_POP = \"cubic-bezier(0.34, 1.3, 0.64, 1)\";\n\n/** CSS stack glide — toasts trading places (Kumo's curve). */\nexport const EASE_STACK = \"cubic-bezier(0.22, 1, 0.36, 1)\";\n\n/** Rise distance for entrances — content surfaces from just below. */\nexport const RISE_PX = 12;\n\n/** Rise distance for the condensed bar — it comes from nearer still. */\nexport const BAR_RISE_PX = -8;\n\n/** Press depth for small controls. */\nexport const PRESS_SCALE = 0.96;\n\n/** Press depth for rows and full-size surfaces — shallower. */\nexport const PRESS_SCALE_ROW = 0.97;\n\n/** The blur budget — one breath of blur, everywhere it is used. */\nexport const BLUR_PX = 1;\n\n/**\n * The crossfade recipe — fade with a breath of blur, both ways. Spread\n * onto a motion element inside `AnimatePresence`:\n *\n * <motion.div {...fadeThroughBlur(reduceMotion)} />\n *\n * Under reduced motion the swap is instant and never blurs.\n */\nexport function fadeThroughBlur(reduceMotion?: boolean | null) {\n const away = reduceMotion ? \"blur(0px)\" : `blur(${BLUR_PX}px)`;\n return {\n initial: { opacity: 0, filter: away },\n animate: { opacity: 1, filter: \"blur(0px)\" },\n exit: { opacity: 0, filter: away },\n transition: reduceMotion ? ({ duration: 0 } as const) : FADE_SWAP,\n } as const;\n}\n\n/**\n * The entrance recipe — rise `RISE_PX` on `SPRING_ENTRANCE` while\n * `FADE_ENTRANCE` brings the ink. What `Stack` and `Reveal` do; spread it\n * onto a motion element for content that should arrive the same way.\n */\nexport function riseIn(reduceMotion?: boolean | null) {\n return {\n initial: reduceMotion ? false : ({ opacity: 0, y: RISE_PX } as const),\n animate: { opacity: 1, y: 0 } as const,\n transition: { y: SPRING_ENTRANCE, opacity: FADE_ENTRANCE } as const,\n } as const;\n}\n"],"mappings":";AAqBA,IAAa,IAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX,GAOa,IAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX,GAMa,IAAe;AAAA,EAC1B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAqB;AAAA,EAChC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAsB;AAAA,EACjC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAgB;AAAA,EAAE,UAAU;AAAA,EAAM,MAAM;AAAU,GAMlD,IAAY;AAAA,EAAE,UAAU;AAAA,EAAK,MAAM;AAAU,GAO7C,IAAgB;AAAA,EAAE,UAAU;AAAA,EAAK,MAAM;AAAS,GAGhD,IAAW,oCAGX,IAAa,kCAGb,IAAU,IAGV,IAAc,IAGd,IAAc,MAGd,IAAkB,MAGlB,IAAU;AAUvB,SAAgB,EAAgB,GAA+B;AAC7D,QAAM,IAAO,IAAe,cAAc;AAC1C,SAAO;AAAA,IACL,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAK;AAAA,IACpC,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAY;AAAA,IAC3C,MAAM;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAK;AAAA,IACjC,YAAY,IAAgB,EAAE,UAAU,EAAE,IAAc;AAAA,EAC1D;AACF;AAOA,SAAgB,EAAO,GAA+B;AACpD,SAAO;AAAA,IACL,SAAS,IAAe,KAAS;AAAA,MAAE,SAAS;AAAA,MAAG,GAAA;AAAA,IAAW;AAAA,IAC1D,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,GAAG;AAAA,IAAE;AAAA,IAC5B,YAAY;AAAA,MAAE,GAAG;AAAA,MAAiB,SAAS;AAAA,IAAc;AAAA,EAC3D;AACF"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/accordion";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/alert-dialog";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/autocomplete";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/avatar";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/button";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/checkbox-group";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/checkbox";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/collapsible";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/combobox";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/context-menu";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/csp-provider";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/dialog";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/direction-provider";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/drawer";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/field";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import "../chunks/rolldown-runtime-wKSmTnsc.js";
2
+ import "../chunks/rolldown-runtime-DG5F_Nuu.js";
3
3
  export * from "@base-ui/react/fieldset";