@slotted/react 0.1.0-beta.6 → 0.1.0-beta.8

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 (112) hide show
  1. package/dist/{action-bar-ti3e6FK1.js → action-bar-C5zaYrEW.js} +2 -2
  2. package/dist/action-bar.js +1 -1
  3. package/dist/{action-sheet-C60BWUW8.js → action-sheet-DD477dAw.js} +1 -1
  4. package/dist/action-sheet.js +1 -1
  5. package/dist/{app-shell-nnSP44OO.js → app-shell-DNdZ5ys0.js} +1 -1
  6. package/dist/app-shell.js +1 -1
  7. package/dist/{calendar-BZ6PP7Ke.js → calendar-xcoBnHpK.js} +17 -17
  8. package/dist/calendar.js +1 -1
  9. package/dist/{color-picker-BcRCeISx.js → color-picker-amz8XfXm.js} +1 -1
  10. package/dist/color-picker.js +1 -1
  11. package/dist/{column-manager-BtkYLs5G.js → column-manager-DonEo9wp.js} +2 -2
  12. package/dist/column-manager.js +1 -1
  13. package/dist/{command-palette-DFLbSOiv.js → command-palette-Dw03scvF.js} +244 -241
  14. package/dist/command-palette.js +1 -1
  15. package/dist/{context-menu-B00UIBVC.js → context-menu-g3DMZKR3.js} +1 -1
  16. package/dist/context-menu.js +1 -1
  17. package/dist/{dashboard-grid-CoLKLvYL.js → dashboard-grid-DsovCuVC.js} +1 -1
  18. package/dist/dashboard-grid.js +1 -1
  19. package/dist/{data-grid-DX95Y7mY.js → data-grid-B93D5XsR.js} +10 -10
  20. package/dist/data-grid.js +1 -1
  21. package/dist/{data-list-CWYTPNm-.js → data-list-UtLdop-1.js} +1 -1
  22. package/dist/data-list.js +1 -1
  23. package/dist/{date-field-BxEpqAPg.js → date-field-DEauLQVL.js} +80 -80
  24. package/dist/date-field.js +1 -1
  25. package/dist/{date-picker-DRk9SZp1.js → date-picker-C22jlzUv.js} +2 -2
  26. package/dist/date-picker.js +1 -1
  27. package/dist/{date-range-picker-6Yz7avTS.js → date-range-picker-BUKoddmL.js} +2 -2
  28. package/dist/date-range-picker.js +1 -1
  29. package/dist/{datetime-field-D2f9u6im.js → datetime-field-Bptwvuip.js} +33 -33
  30. package/dist/datetime-field.js +1 -1
  31. package/dist/{datetime-picker-STqSWMkH.js → datetime-picker-BiarFWN3.js} +2 -2
  32. package/dist/datetime-picker.js +1 -1
  33. package/dist/{datetime-range-picker-DQNQwr3K.js → datetime-range-picker--JtLnGQ2.js} +2 -2
  34. package/dist/datetime-range-picker.js +1 -1
  35. package/dist/{detail-panel-z6WGleP4.js → detail-panel-ChaIgrw3.js} +2 -2
  36. package/dist/detail-panel.js +1 -1
  37. package/dist/{dialog-BHYDDj1S.js → dialog-Ds0LJWE_.js} +157 -140
  38. package/dist/dialog.js +1 -1
  39. package/dist/docs/calendar.json +1 -1
  40. package/dist/docs/menu.json +12 -0
  41. package/dist/docs/menu.md +2 -0
  42. package/dist/docs/side-navigation.json +1 -0
  43. package/dist/docs/side-navigation.md +1 -1
  44. package/dist/docs/table.examples.md +13 -17
  45. package/dist/docs/table.json +3 -3
  46. package/dist/{drawer-LXM44eso.js → drawer-DZ_29U6H.js} +5 -2
  47. package/dist/drawer.js +1 -1
  48. package/dist/{event-calendar-CiphPXdV.js → event-calendar-CPAun_ab.js} +3 -3
  49. package/dist/event-calendar.js +1 -1
  50. package/dist/{filter-bar-C_dXljI_.js → filter-bar-BKKqH0ui.js} +5 -5
  51. package/dist/filter-bar.js +1 -1
  52. package/dist/{import-export-center-BQnMJz4g.js → import-export-center-Bg1Iavoa.js} +2 -2
  53. package/dist/import-export-center.js +1 -1
  54. package/dist/index.js +40 -40
  55. package/dist/{loading-overlay-COfnckse.js → loading-overlay-RRsNK1FN.js} +1 -1
  56. package/dist/loading-overlay.js +1 -1
  57. package/dist/{menu-parts-D6v_mz6O.js → menu-parts-BpQu2s4z.js} +210 -206
  58. package/dist/menu.js +1 -1
  59. package/dist/{menubar-DApIg1eR.js → menubar-rpNcgIrw.js} +1 -1
  60. package/dist/menubar.js +1 -1
  61. package/dist/{navigation-menu-parts-D8qFAwHX.js → navigation-menu-parts-Cn-OAadu.js} +1 -1
  62. package/dist/navigation-menu.js +1 -1
  63. package/dist/{page-IiYXk1sz.js → page-QP8Zyz8-.js} +1 -1
  64. package/dist/{page-header-Bn4nIGfF.js → page-header-BP_Wt3eS.js} +1 -1
  65. package/dist/page-header.js +1 -1
  66. package/dist/page.js +1 -1
  67. package/dist/{saved-views-B3brBTD9.js → saved-views-DB2IIdhH.js} +1 -1
  68. package/dist/saved-views.js +1 -1
  69. package/dist/{side-navigation-Bm-BZma1.js → side-navigation-BnUKTrtd.js} +1 -1
  70. package/dist/side-navigation.js +1 -1
  71. package/dist/{split-button-DKRm0j5c.js → split-button-p97Bd5wM.js} +1 -1
  72. package/dist/split-button.js +1 -1
  73. package/dist/styles.css +1 -1
  74. package/dist/{table-BYEvFr4P.js → table-BTSOjlTn.js} +8 -8
  75. package/dist/table.js +1 -1
  76. package/dist/{time-field-BI9n607q.js → time-field-DeKrogZG.js} +2 -2
  77. package/dist/time-field.js +1 -1
  78. package/dist/{time-picker-D6SlQWNF.js → time-picker-C0-O0oMU.js} +1 -1
  79. package/dist/time-picker.js +1 -1
  80. package/dist/{time-range-picker-CcV3_45h.js → time-range-picker-Fdb70Zj_.js} +1 -1
  81. package/dist/time-range-picker.js +1 -1
  82. package/dist/{toast-Bf3e0AgC.js → toast-BTN_F9No.js} +1 -1
  83. package/dist/toast.js +1 -1
  84. package/dist/{toolbar-B9knmgHA.js → toolbar-U-CFEb1c.js} +1 -1
  85. package/dist/toolbar.js +1 -1
  86. package/dist/{top-navigation-DiG2PF5W.js → top-navigation-BjIRQfkK.js} +2 -2
  87. package/dist/top-navigation.js +1 -1
  88. package/dist/types/action-bar/action-bar.d.ts.map +1 -1
  89. package/dist/types/app-shell/app-shell.d.ts.map +1 -1
  90. package/dist/types/calendar/calendar.d.ts.map +1 -1
  91. package/dist/types/command-palette/command-palette.d.ts.map +1 -1
  92. package/dist/types/dialog/dialog-parts.d.ts.map +1 -1
  93. package/dist/types/dialog/dialog.d.ts.map +1 -1
  94. package/dist/types/drawer/drawer-parts.d.ts.map +1 -1
  95. package/dist/types/drawer/drawer.d.ts.map +1 -1
  96. package/dist/types/loading-overlay/loading-overlay.d.ts.map +1 -1
  97. package/dist/types/menu/index.d.ts +1 -1
  98. package/dist/types/menu/index.d.ts.map +1 -1
  99. package/dist/types/menu/menu-defaults.d.ts.map +1 -1
  100. package/dist/types/menu/menu-parts.d.ts.map +1 -1
  101. package/dist/types/menu/menu.d.ts +1 -1
  102. package/dist/types/menu/menu.d.ts.map +1 -1
  103. package/dist/types/menu/menu.types.d.ts +10 -0
  104. package/dist/types/menu/menu.types.d.ts.map +1 -1
  105. package/dist/types/navigation-menu/navigation-menu-parts.d.ts.map +1 -1
  106. package/dist/types/page/page.d.ts.map +1 -1
  107. package/dist/types/table/table-parts.d.ts +4 -0
  108. package/dist/types/table/table-parts.d.ts.map +1 -1
  109. package/dist/types/toast/toast-parts.d.ts.map +1 -1
  110. package/dist/{upload-CLX5cURk.js → upload-DGmsz9Hw.js} +1 -1
  111. package/dist/upload.js +1 -1
  112. package/package.json +11 -8
@@ -4,13 +4,14 @@ import { createFocusScope as r } from "@slotted/core/focus";
4
4
  import { createControllable as i } from "@slotted/core/state";
5
5
  import { createContext as a, useCallback as o, useContext as s, useEffect as c, useId as l, useImperativeHandle as u, useLayoutEffect as d, useMemo as f, useRef as p, useState as m } from "react";
6
6
  import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
7
- import { createPresence as ee } from "@slotted/core/presence";
8
- import { createPortalRoot as v } from "@slotted/core/portal";
9
- import { createDismissableLayer as y } from "@slotted/core/dismissable-layer";
10
- import { createPortal as b } from "react-dom";
11
- import { dialogMessages as te } from "@slotted/core/i18n";
7
+ import { createPresence as v } from "@slotted/core/presence";
8
+ import { createPortalRoot as y } from "@slotted/core/portal";
9
+ import { createDismissableLayer as b } from "@slotted/core/dismissable-layer";
10
+ import { createPortal as x } from "react-dom";
11
+ import { dialogMessages as S } from "@slotted/core/i18n";
12
+ import { observeKeyboardInset as C } from "@slotted/core/measure";
12
13
  //#region src/dialog/dialog-defaults.tsx
13
- var x = a({
14
+ var w = a({
14
15
  back: "close",
15
16
  escape: "close",
16
17
  fullScreen: "narrow",
@@ -22,12 +23,12 @@ var x = a({
22
23
  size: "md",
23
24
  surface: "panel"
24
25
  });
25
- function S() {
26
- return s(x);
26
+ function T() {
27
+ return s(w);
27
28
  }
28
- function C({ children: e, ...t }) {
29
- let n = S();
30
- return /* @__PURE__ */ g(x.Provider, {
29
+ function ee({ children: e, ...t }) {
30
+ let n = T();
31
+ return /* @__PURE__ */ g(w.Provider, {
31
32
  value: {
32
33
  back: t.back ?? n.back,
33
34
  escape: t.escape ?? n.escape,
@@ -45,38 +46,38 @@ function C({ children: e, ...t }) {
45
46
  }
46
47
  //#endregion
47
48
  //#region src/dialog/dialog.tsx
48
- var w = a(void 0);
49
- function T() {
50
- let e = s(w);
49
+ var E = a(void 0);
50
+ function D() {
51
+ let e = s(E);
51
52
  if (e === void 0) throw Error("Every dialog part must be rendered inside Dialog or AlertDialog.");
52
53
  return e;
53
54
  }
54
- function E({ back: e, children: t, container: r, defaultFullscreen: a, defaultOpen: s, escape: d, finalFocus: h, fullscreen: _, fullScreen: v, fullscreenToggle: y, initialFocus: b, loading: x, member: C, messages: T, modal: E, mount: D, onFullscreenChange: O, onOpenChange: k, open: A, outsidePress: j, placement: M, ref: ne, scroll: re, size: ie, surface: ae, tone: N }) {
55
- let P = S(), F = n(te, T), I = l(), [L, R] = m(s ?? !1), z = A ?? L, B = C === "alertDialog", [V, oe] = m(a ?? !1), H = !B && (_ ?? V), U = !B && y === !0, W = B ? !0 : E ?? P.modal, G = B ? "none" : j ?? P.outsidePress, K = D ?? P.mount, q = ie ?? (B ? "sm" : P.size), J = v ?? (B ? "never" : P.fullScreen), se = b ?? (B ? "cancel" : "first"), ce = d ?? P.escape, le = e ?? P.back, ue = M ?? P.placement, de = re ?? P.scroll, fe = ae ?? P.surface, [Y, pe] = m(z ? "open" : "unmounted"), X = p(null);
56
- X.current === null && (X.current = ee({
57
- present: z,
58
- onStatusChange: pe
55
+ function O({ back: e, children: t, container: r, defaultFullscreen: a, defaultOpen: s, escape: d, finalFocus: h, fullscreen: _, fullScreen: y, fullscreenToggle: b, initialFocus: x, loading: C, member: w, messages: ee, modal: D, mount: O, onFullscreenChange: k, onOpenChange: A, open: j, outsidePress: M, placement: te, ref: ne, scroll: re, size: ie, surface: N, tone: P }) {
56
+ let F = T(), I = n(S, ee), L = l(), [R, z] = m(s ?? !1), B = j ?? R, V = w === "alertDialog", [H, U] = m(a ?? !1), W = !V && (_ ?? H), G = !V && b === !0, K = V ? !0 : D ?? F.modal, q = V ? "none" : M ?? F.outsidePress, J = O ?? F.mount, Y = ie ?? (V ? "sm" : F.size), ae = y ?? (V ? "never" : F.fullScreen), oe = x ?? (V ? "cancel" : "first"), se = d ?? F.escape, ce = e ?? F.back, le = te ?? F.placement, ue = re ?? F.scroll, de = N ?? F.surface, [X, fe] = m(B ? "open" : "unmounted"), Z = p(null);
57
+ Z.current === null && (Z.current = v({
58
+ present: B,
59
+ onStatusChange: fe
59
60
  })), c(() => {
60
- X.current?.sync(z);
61
- }, [z]), c(() => {
62
- let e = X.current;
63
- return () => e?.destroy();
61
+ Z.current?.sync(B);
62
+ }, [B]), c(() => {
63
+ let e = Z.current;
64
+ return () => e?.stop();
64
65
  }, []);
65
- let me = p(z);
66
- z && (me.current = !0);
67
- let he = K === "eager" ? !0 : K === "lazy" ? me.current : Y !== "unmounted", Z = p({
66
+ let pe = p(B);
67
+ B && (pe.current = !0);
68
+ let me = J === "eager" ? !0 : J === "lazy" ? pe.current : X !== "unmounted", Q = p({
68
69
  cancel: null,
69
70
  content: null,
70
71
  trigger: null
71
- }), [ge, _e] = m(!1), [Q, ve] = m(!1), ye = o((e, t) => (e === "cancel" && (Z.current.cancel = t), e === "title" && _e(!0), e === "description" && ve(!0), () => {
72
- e === "cancel" && (Z.current.cancel = null), e === "title" && _e(!1), e === "description" && ve(!1);
72
+ }), [he, ge] = m(!1), [_e, ve] = m(!1), ye = o((e, t) => (e === "cancel" && (Q.current.cancel = t), e === "title" && ge(!0), e === "description" && ve(!0), () => {
73
+ e === "cancel" && (Q.current.cancel = null), e === "title" && ge(!1), e === "description" && ve(!1);
73
74
  }), []), $ = o((e, t, n, r) => {
74
- if (e === z) return;
75
+ if (e === B) return;
75
76
  let a = !1, o = i({
76
- controlled: A,
77
- initial: z,
77
+ controlled: j,
78
+ initial: B,
78
79
  onRequest: (e) => {
79
- a = e.cancelled, k?.(e.value, {
80
+ a = e.cancelled, A?.(e.value, {
80
81
  get cancelled() {
81
82
  return e.cancelled;
82
83
  },
@@ -89,17 +90,17 @@ function E({ back: e, children: t, container: r, defaultFullscreen: a, defaultOp
89
90
  });
90
91
  }
91
92
  }).request(e, t, r);
92
- a || o && R(e);
93
+ a || o && z(e);
93
94
  }, [
94
- z,
95
- k,
96
- A
95
+ B,
96
+ A,
97
+ j
97
98
  ]), be = o((e, t, n) => {
98
- e !== H && i({
99
+ e !== W && i({
99
100
  controlled: _,
100
- initial: H,
101
+ initial: W,
101
102
  onRequest: (e) => {
102
- O?.(e.value, {
103
+ k?.(e.value, {
103
104
  get cancelled() {
104
105
  return e.cancelled;
105
106
  },
@@ -110,115 +111,115 @@ function E({ back: e, children: t, container: r, defaultFullscreen: a, defaultOp
110
111
  value: e.value
111
112
  });
112
113
  }
113
- }).request(e, t, n) && oe(e);
114
+ }).request(e, t, n) && U(e);
114
115
  }, [
115
- H,
116
+ W,
116
117
  _,
117
- O
118
+ k
118
119
  ]);
119
120
  u(ne, () => ({
120
121
  open: () => $(!0, "programmatic", void 0, void 0),
121
122
  close: (e) => $(!1, "programmatic", e, void 0),
122
- focus: () => Z.current.content?.focus(),
123
+ focus: () => Q.current.content?.focus(),
123
124
  get content() {
124
- return Z.current.content;
125
+ return Q.current.content;
125
126
  }
126
127
  }), [$]);
127
128
  let xe = f(() => ({
128
129
  announce: ye,
129
130
  close: (e, t, n) => $(!1, e, t, n),
130
131
  container: r,
131
- descriptionId: Q ? `${I}description` : "",
132
- back: le,
133
- escape: ce,
132
+ descriptionId: _e ? `${L}description` : "",
133
+ back: ce,
134
+ escape: se,
134
135
  finalFocus: h,
135
- fullScreen: J,
136
- fullscreen: H,
137
- fullscreenToggle: U,
138
- initialFocus: se,
136
+ fullScreen: ae,
137
+ fullscreen: W,
138
+ fullscreenToggle: G,
139
+ initialFocus: oe,
139
140
  setFullscreen: be,
140
- loading: x === !0,
141
- member: C,
142
- modal: W,
143
- mount: K,
144
- mounted: he,
145
- nodes: Z.current,
146
- open: z,
141
+ loading: C === !0,
142
+ member: w,
143
+ modal: K,
144
+ mount: J,
145
+ mounted: me,
146
+ nodes: Q.current,
147
+ open: B,
147
148
  openWith: (e, t) => $(!0, e, void 0, t),
148
- outsidePress: G,
149
- placement: ue,
149
+ outsidePress: q,
150
+ placement: le,
150
151
  registerContent: (e) => {
151
- Z.current.content = e;
152
+ Q.current.content = e;
152
153
  },
153
- registerLayer: (e) => X.current?.setNode(e),
154
+ registerLayer: (e) => Z.current?.setNode(e),
154
155
  registerTrigger: (e) => {
155
- Z.current.trigger = e;
156
+ Q.current.trigger = e;
156
157
  },
157
- scroll: de,
158
- size: q,
159
- surface: fe,
160
- t: F,
161
- titleId: ge ? `${I}title` : "",
162
- tone: B ? N ?? "danger" : void 0,
163
- triggerId: `${I}trigger`,
164
- visible: Y === "open",
165
- interactive: Y === "entering" || Y === "open"
158
+ scroll: ue,
159
+ size: Y,
160
+ surface: de,
161
+ t: I,
162
+ titleId: he ? `${L}title` : "",
163
+ tone: V ? P ?? "danger" : void 0,
164
+ triggerId: `${L}trigger`,
165
+ visible: X === "open",
166
+ interactive: X === "entering" || X === "open"
166
167
  }), [
167
168
  ye,
168
- I,
169
+ L,
169
170
  r,
170
- z,
171
- H,
172
- Q,
173
- h,
174
171
  B,
175
- x,
172
+ W,
173
+ _e,
174
+ h,
175
+ V,
176
176
  C,
177
- he,
177
+ w,
178
+ me,
178
179
  $,
179
- le,
180
180
  ce,
181
- J,
182
- U,
183
181
  se,
184
- W,
185
- K,
182
+ ae,
186
183
  G,
187
- ue,
188
- de,
184
+ oe,
185
+ K,
186
+ J,
189
187
  q,
190
- be,
191
- fe,
188
+ le,
189
+ ue,
192
190
  Y,
193
- F,
194
- ge,
195
- N
191
+ be,
192
+ de,
193
+ X,
194
+ I,
195
+ he,
196
+ P
196
197
  ]);
197
- return /* @__PURE__ */ g(w.Provider, {
198
+ return /* @__PURE__ */ g(E.Provider, {
198
199
  value: xe,
199
200
  children: t
200
201
  });
201
202
  }
202
- function D(e) {
203
- return /* @__PURE__ */ g(E, {
203
+ function k(e) {
204
+ return /* @__PURE__ */ g(O, {
204
205
  ...e,
205
206
  member: "dialog"
206
207
  });
207
208
  }
208
- function O(e) {
209
- return /* @__PURE__ */ g(E, {
209
+ function A(e) {
210
+ return /* @__PURE__ */ g(O, {
210
211
  ...e,
211
212
  member: "alertDialog"
212
213
  });
213
214
  }
214
215
  //#endregion
215
216
  //#region src/dialog/dialog-parts.tsx
216
- function k(e) {
217
+ function j(e) {
217
218
  return e.detail === 0 ? "keyboard" : "pointer";
218
219
  }
219
- var A = typeof document > "u" ? c : d;
220
- function j({ children: e, className: t, onClick: n, ref: r, render: i, style: a, ...o }) {
221
- let s = T(), c = {
220
+ var M = typeof document > "u" ? c : d;
221
+ function te({ children: e, className: t, onClick: n, ref: r, render: i, style: a, ...o }) {
222
+ let s = D(), c = {
222
223
  ...o,
223
224
  "aria-controls": s.mounted ? `${s.triggerId}-content` : void 0,
224
225
  "aria-expanded": s.open,
@@ -229,7 +230,7 @@ function j({ children: e, className: t, onClick: n, ref: r, render: i, style: a,
229
230
  ...s.open ? { "data-open": "" } : {},
230
231
  id: s.triggerId,
231
232
  onClick: (e) => {
232
- n?.(e), !e.defaultPrevented && s.openWith(k(e), e);
233
+ n?.(e), !e.defaultPrevented && s.openWith(j(e), e);
233
234
  },
234
235
  ref: (e) => {
235
236
  s.registerTrigger(e), typeof r == "function" ? r(e) : r && (r.current = e);
@@ -239,11 +240,11 @@ function j({ children: e, className: t, onClick: n, ref: r, render: i, style: a,
239
240
  };
240
241
  return i === void 0 ? /* @__PURE__ */ g("button", { ...c }) : i(c);
241
242
  }
242
- function M(e) {
243
+ function ne(e) {
243
244
  let [t, n] = m(null);
244
- return A(() => {
245
+ return M(() => {
245
246
  if (!e.mounted) return;
246
- let t = v({
247
+ let t = y({
247
248
  origin: e.nodes.trigger,
248
249
  ...e.container === void 0 ? {} : { container: e.container }
249
250
  });
@@ -256,15 +257,15 @@ function M(e) {
256
257
  e.nodes
257
258
  ]), t;
258
259
  }
259
- function ne({ children: e, className: t, ref: n, render: i, style: a, ...o }) {
260
- let s = T(), l = M(s), [u, d] = m(null), f = `${s.triggerId}-content`, p = s.titleId !== "" && o["aria-label"] === void 0, h = s.descriptionId !== "";
261
- if (c(() => {
260
+ function re({ children: e, className: t, ref: n, render: i, style: a, ...o }) {
261
+ let s = D(), l = ne(s), [u, d] = m(null), f = `${s.triggerId}-content`, p = s.titleId !== "" && o["aria-label"] === void 0, h = s.descriptionId !== "";
262
+ c(() => {
262
263
  if (s.member === "alertDialog" && u !== null && u.querySelector("[data-part=\"description\"]") === null) throw Error("AlertDialog requires a DialogDescription: the alertdialog pattern makes aria-describedby mandatory.");
263
264
  }, [u, s.member]), c(() => {
264
265
  if (u === null || !s.open) return;
265
266
  let e = u.closest("[data-ui=\"dialog\"]");
266
267
  if (e === null) return;
267
- let t = s.nodes.trigger === null ? [] : [s.nodes.trigger], n = y(e, {
268
+ let t = s.nodes.trigger === null ? [] : [s.nodes.trigger], n = b(e, {
268
269
  back: s.modal && s.back === "close",
269
270
  branches: t,
270
271
  content: u,
@@ -284,8 +285,24 @@ function ne({ children: e, className: t, ref: n, render: i, style: a, ...o }) {
284
285
  return o.enter(), () => {
285
286
  n.destroy(), o.destroy();
286
287
  };
287
- }, [u, s]), !s.mounted || l === null) return null;
288
- let ee = {
288
+ }, [u, s]);
289
+ let v = s.fullScreen !== "never" || s.fullscreen;
290
+ if (c(() => {
291
+ if (u === null || !s.open || !v) return;
292
+ let e = u.closest("[data-ui=\"dialog\"]");
293
+ if (e === null) return;
294
+ let t = C(e.ownerDocument.defaultView, (t) => {
295
+ t === 0 ? e.style.removeProperty("--slotted-keyboard-inset") : e.style.setProperty("--slotted-keyboard-inset", `${t}px`);
296
+ });
297
+ return () => {
298
+ t(), e.style.removeProperty("--slotted-keyboard-inset");
299
+ };
300
+ }, [
301
+ u,
302
+ v,
303
+ s.open
304
+ ]), !s.mounted || l === null) return null;
305
+ let y = {
289
306
  "data-full-screen": s.fullScreen,
290
307
  ...s.fullscreen ? { "data-fullscreen": "" } : {},
291
308
  ...s.loading ? { "data-loading": "" } : {},
@@ -300,7 +317,7 @@ function ne({ children: e, className: t, ref: n, render: i, style: a, ...o }) {
300
317
  "data-surface": s.surface,
301
318
  ...s.tone === void 0 ? {} : { "data-tone": s.tone },
302
319
  "data-ui": "dialog"
303
- }, v = {
320
+ }, S = {
304
321
  ...o,
305
322
  ...h ? { "aria-describedby": s.descriptionId } : {},
306
323
  ...p ? { "aria-labelledby": s.titleId } : {},
@@ -314,21 +331,21 @@ function ne({ children: e, className: t, ref: n, render: i, style: a, ...o }) {
314
331
  },
315
332
  role: s.member === "alertDialog" ? "alertdialog" : "dialog",
316
333
  style: a
317
- }, te = i === void 0 ? /* @__PURE__ */ g("div", { ...v }) : i(v);
318
- return b(/* @__PURE__ */ _("div", {
319
- ...ee,
334
+ }, w = i === void 0 ? /* @__PURE__ */ g("div", { ...S }) : i(S);
335
+ return x(/* @__PURE__ */ _("div", {
336
+ ...y,
320
337
  ...s.interactive ? {} : { inert: !0 },
321
338
  ref: s.registerLayer,
322
339
  children: [/* @__PURE__ */ g("div", { "data-part": "backdrop" }), /* @__PURE__ */ g("div", {
323
340
  "data-part": "viewport",
324
- children: te
341
+ children: w
325
342
  })]
326
343
  }), l);
327
344
  }
328
- function re({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
329
- let o = T(), s = {
345
+ function ie({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
346
+ let o = D(), s = {
330
347
  ...a,
331
- children: /* @__PURE__ */ _(h, { children: [e, o.fullscreenToggle ? /* @__PURE__ */ g(ie, {}) : null] }),
348
+ children: /* @__PURE__ */ _(h, { children: [e, o.fullscreenToggle ? /* @__PURE__ */ g(N, {}) : null] }),
332
349
  className: t,
333
350
  "data-part": "header",
334
351
  style: i
@@ -338,8 +355,8 @@ function re({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
338
355
  ref: n
339
356
  }) : r(s);
340
357
  }
341
- function ie() {
342
- let n = T();
358
+ function N() {
359
+ let n = D();
343
360
  return /* @__PURE__ */ g("button", {
344
361
  "aria-label": n.t("fullScreen"),
345
362
  "aria-pressed": n.fullscreen,
@@ -351,8 +368,8 @@ function ie() {
351
368
  children: /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g(e, { name: n.fullscreen ? "minimize" : "maximize" }) })
352
369
  });
353
370
  }
354
- function ae({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
355
- let o = T();
371
+ function P({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
372
+ let o = D();
356
373
  c(() => o.announce("title", null), [o]);
357
374
  let s = {
358
375
  ...a,
@@ -367,8 +384,8 @@ function ae({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
367
384
  ref: n
368
385
  }) : r(s);
369
386
  }
370
- function N({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
371
- let o = T();
387
+ function F({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
388
+ let o = D();
372
389
  c(() => o.announce("description", null), [o]);
373
390
  let s = {
374
391
  ...a,
@@ -383,8 +400,8 @@ function N({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
383
400
  ref: n
384
401
  }) : r(s);
385
402
  }
386
- function P({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
387
- let o = T(), s = {
403
+ function I({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
404
+ let o = D(), s = {
388
405
  ...a,
389
406
  ...o.loading ? { "aria-busy": !0 } : {},
390
407
  children: e,
@@ -397,7 +414,7 @@ function P({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
397
414
  ref: n
398
415
  }) : r(s);
399
416
  }
400
- function F({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
417
+ function L({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
401
418
  let o = {
402
419
  ...a,
403
420
  children: e,
@@ -410,8 +427,8 @@ function F({ children: e, className: t, ref: n, render: r, style: i, ...a }) {
410
427
  ref: n
411
428
  }) : r(o);
412
429
  }
413
- function I(e, t, n, r) {
414
- let i = T();
430
+ function R(e, t, n, r) {
431
+ let i = D();
415
432
  return {
416
433
  dialog: i,
417
434
  handleClick: (e) => {
@@ -420,8 +437,8 @@ function I(e, t, n, r) {
420
437
  part: e
421
438
  };
422
439
  }
423
- function L({ children: n, className: r, onClick: i, ref: a, render: o, style: s, value: c, ...l }) {
424
- let { dialog: u, handleClick: d } = I("close", "dismiss", i, c);
440
+ function z({ children: n, className: r, onClick: i, ref: a, render: o, style: s, value: c, ...l }) {
441
+ let { dialog: u, handleClick: d } = R("close", "dismiss", i, c);
425
442
  if (u.member === "alertDialog") throw Error("AlertDialog has no close part: a confirmation is answered with AlertDialogCancel or AlertDialogAction, not dismissed by an ✕.");
426
443
  let f = {
427
444
  "aria-label": u.t("close"),
@@ -438,18 +455,18 @@ function L({ children: n, className: r, onClick: i, ref: a, render: o, style: s,
438
455
  ref: a
439
456
  }) : o(f);
440
457
  }
441
- var R = {
458
+ var B = {
442
459
  accent: "circle-info",
443
460
  secondary: "circle-info",
444
461
  success: "circle-check",
445
462
  warning: "triangle-alert",
446
463
  danger: "circle-alert"
447
464
  };
448
- function z({ children: n, className: r, ref: i, render: a, style: o, ...s }) {
449
- let c = T(), l = {
465
+ function V({ children: n, className: r, ref: i, render: a, style: o, ...s }) {
466
+ let c = D(), l = {
450
467
  "aria-hidden": !0,
451
468
  ...s,
452
- children: n ?? /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g(e, { name: c.tone === void 0 ? "triangle-alert" : R[c.tone] }) }),
469
+ children: n ?? /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g(e, { name: c.tone === void 0 ? "triangle-alert" : B[c.tone] }) }),
453
470
  className: r,
454
471
  "data-part": "icon",
455
472
  style: o
@@ -459,8 +476,8 @@ function z({ children: n, className: r, ref: i, render: a, style: o, ...s }) {
459
476
  ref: i
460
477
  }) : a(l);
461
478
  }
462
- function B({ children: e, className: t, onClick: n, ref: r, render: i, style: a, value: o, ...s }) {
463
- let { dialog: c, handleClick: l } = I("cancel", "dismiss", n, o ?? "cancel"), u = {
479
+ function H({ children: e, className: t, onClick: n, ref: r, render: i, style: a, value: o, ...s }) {
480
+ let { dialog: c, handleClick: l } = R("cancel", "dismiss", n, o ?? "cancel"), u = {
464
481
  ...s,
465
482
  children: e,
466
483
  className: t,
@@ -479,8 +496,8 @@ function B({ children: e, className: t, onClick: n, ref: r, render: i, style: a,
479
496
  ref: d
480
497
  });
481
498
  }
482
- function V({ children: e, className: t, onClick: n, ref: r, render: i, style: a, value: o, ...s }) {
483
- let { handleClick: c } = I("action", "submit", n, o ?? "confirm"), l = {
499
+ function U({ children: e, className: t, onClick: n, ref: r, render: i, style: a, value: o, ...s }) {
500
+ let { handleClick: c } = R("action", "submit", n, o ?? "confirm"), l = {
484
501
  ...s,
485
502
  children: e,
486
503
  className: t,
@@ -495,4 +512,4 @@ function V({ children: e, className: t, onClick: n, ref: r, render: i, style: a,
495
512
  }) : i(l);
496
513
  }
497
514
  //#endregion
498
- export { L as a, F as c, j as d, O as f, S as g, C as h, P as i, re as l, T as m, B as n, ne as o, D as p, z as r, N as s, V as t, ae as u };
515
+ export { z as a, L as c, te as d, A as f, T as g, ee as h, I as i, ie as l, D as m, H as n, re as o, k as p, V as r, F as s, U as t, P as u };
package/dist/dialog.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, d as n, f as r, g as i, h as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "./dialog-BHYDDj1S.js";
1
+ import { a as e, c as t, d as n, f as r, g as i, h as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "./dialog-Ds0LJWE_.js";
2
2
  export { r as AlertDialog, m as AlertDialogAction, l as AlertDialogCancel, f as AlertDialogIcon, d as Dialog, o as DialogBody, e as DialogClose, u as DialogContent, a as DialogDefaultsProvider, p as DialogDescription, t as DialogFooter, s as DialogHeader, h as DialogTitle, n as DialogTrigger, c as useDialog, i as useDialogDefaults };
@@ -114,7 +114,7 @@
114
114
  "part": "previous",
115
115
  "element": "button",
116
116
  "required": true,
117
- "purpose": "One page back, in whichever view is showing: a month in the day view, a year in the month view, twelve years in the year view. Its chevron is the next trigger’s artwork turned, so both follow the document direction from one token."
117
+ "purpose": "One page back, in whichever view is showing: a month in the day view, a year in the month view, twelve years in the year view, and it is named for that step. Its chevron is the next trigger’s artwork turned, so both follow the document direction from one token."
118
118
  },
119
119
  {
120
120
  "part": "next",
@@ -12,6 +12,10 @@
12
12
  "md",
13
13
  "lg"
14
14
  ],
15
+ "width": [
16
+ "content",
17
+ "anchor"
18
+ ],
15
19
  "side": [
16
20
  "bottom",
17
21
  "top",
@@ -84,6 +88,7 @@
84
88
  "nativeElement": "div",
85
89
  "defaults": {
86
90
  "size": "md",
91
+ "width": "content",
87
92
  "side": "bottom",
88
93
  "align": "start",
89
94
  "mount": "active",
@@ -309,6 +314,13 @@
309
314
  "appliesTo": "Menu",
310
315
  "description": "The width of the surface and the height of its items."
311
316
  },
317
+ {
318
+ "name": "width",
319
+ "type": "'content' | 'anchor'",
320
+ "defaultValue": "content",
321
+ "appliesTo": "Menu",
322
+ "description": "content: the surface takes its own measure; anchor: it is exactly as wide as its trigger, capped by the available width. A submenu is always content."
323
+ },
312
324
  {
313
325
  "name": "side",
314
326
  "type": "'top' | 'bottom' | 'inline-start' | 'inline-end' | 'left' | 'right'",
package/dist/docs/menu.md CHANGED
@@ -74,6 +74,7 @@ export default function MenuBasic() {
74
74
  | `defaultValue` | `string` | — | MenuRadioGroup | The value an uncontrolled group starts with. |
75
75
  | `onValueChange` | `(value, request) => void` | — | MenuRadioGroup | Called before the chosen value changes, with pointer or keyboard as the reason. |
76
76
  | `size` | `'sm' \| 'md' \| 'lg'` | md | Menu | The width of the surface and the height of its items. |
77
+ | `width` | `'content' \| 'anchor'` | content | Menu | content: the surface takes its own measure; anchor: it is exactly as wide as its trigger, capped by the available width. A submenu is always content. |
77
78
  | `side` | `'top' \| 'bottom' \| 'inline-start' \| 'inline-end' \| 'left' \| 'right'` | bottom | Menu | The edge of the trigger the surface opens from. inline-start and inline-end follow the reading direction. |
78
79
  | `align` | `'start' \| 'center' \| 'end'` | start | Menu | Where the surface sits along that edge. |
79
80
  | `anchor` | `PositionerAnchor \| null` | — | Menu | What the surface is positioned against instead of the trigger, such as a table row or a point. Focus still returns to the trigger. |
@@ -130,6 +131,7 @@ export default function MenuBasic() {
130
131
  | Axis | Values | Default |
131
132
  | --- | --- | --- |
132
133
  | `size` | `sm`, `md`, `lg` | `md` |
134
+ | `width` | `content`, `anchor` | `content` |
133
135
  | `side` | `bottom`, `top`, `inline-start`, `inline-end`, `left`, `right` | `bottom` |
134
136
  | `align` | `start`, `center`, `end` | `start` |
135
137
  | `mount` | `active`, `lazy`, `eager` | `active` |
@@ -429,6 +429,7 @@
429
429
  "--slotted-app-shell-row-inset",
430
430
  "--slotted-app-shell-row-line-height",
431
431
  "--slotted-app-shell-row-mark",
432
+ "--slotted-app-shell-row-ring-inset",
432
433
  "--slotted-border-subtle",
433
434
  "--slotted-border-width-thin",
434
435
  "--slotted-control-font-family",
@@ -130,7 +130,7 @@ export default function SideNavigationBasic() {
130
130
 
131
131
  ## Tokens
132
132
 
133
- `--slotted-app-shell-row-font-size`, `--slotted-app-shell-row-gap`, `--slotted-app-shell-row-height`, `--slotted-app-shell-row-inset`, `--slotted-app-shell-row-line-height`, `--slotted-app-shell-row-mark`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-current-edge`, `--slotted-disabled-foreground`, `--slotted-duration-instant`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-easing-exit`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-md`, `--slotted-font-size-sm`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xs`, `--slotted-radius-full`, `--slotted-radius-lg`, `--slotted-radius-md`, `--slotted-shadow-md`, `--slotted-side-navigation-active-background`, `--slotted-side-navigation-color`, `--slotted-side-navigation-current-background`, `--slotted-side-navigation-current-color`, `--slotted-side-navigation-current-description-color`, `--slotted-side-navigation-current-edge`, `--slotted-side-navigation-description-color`, `--slotted-side-navigation-description-gap`, `--slotted-side-navigation-dot-color`, `--slotted-side-navigation-dot-size`, `--slotted-side-navigation-flyout-border-color`, `--slotted-side-navigation-flyout-measure`, `--slotted-side-navigation-flyout-min-measure`, `--slotted-side-navigation-flyout-radius`, `--slotted-side-navigation-flyout-shadow`, `--slotted-side-navigation-flyout-surface`, `--slotted-side-navigation-guide-color`, `--slotted-side-navigation-hover-background`, `--slotted-side-navigation-hover-color`, `--slotted-side-navigation-indent`, `--slotted-side-navigation-indent-step`, `--slotted-side-navigation-radius`, `--slotted-side-navigation-row-gap`, `--slotted-side-navigation-section-color`, `--slotted-side-navigation-section-gap`, `--slotted-side-navigation-section-label-gap`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-7`, `--slotted-surface-raised`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-popover`
133
+ `--slotted-app-shell-row-font-size`, `--slotted-app-shell-row-gap`, `--slotted-app-shell-row-height`, `--slotted-app-shell-row-inset`, `--slotted-app-shell-row-line-height`, `--slotted-app-shell-row-mark`, `--slotted-app-shell-row-ring-inset`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-current-edge`, `--slotted-disabled-foreground`, `--slotted-duration-instant`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-easing-exit`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-md`, `--slotted-font-size-sm`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xs`, `--slotted-radius-full`, `--slotted-radius-lg`, `--slotted-radius-md`, `--slotted-shadow-md`, `--slotted-side-navigation-active-background`, `--slotted-side-navigation-color`, `--slotted-side-navigation-current-background`, `--slotted-side-navigation-current-color`, `--slotted-side-navigation-current-description-color`, `--slotted-side-navigation-current-edge`, `--slotted-side-navigation-description-color`, `--slotted-side-navigation-description-gap`, `--slotted-side-navigation-dot-color`, `--slotted-side-navigation-dot-size`, `--slotted-side-navigation-flyout-border-color`, `--slotted-side-navigation-flyout-measure`, `--slotted-side-navigation-flyout-min-measure`, `--slotted-side-navigation-flyout-radius`, `--slotted-side-navigation-flyout-shadow`, `--slotted-side-navigation-flyout-surface`, `--slotted-side-navigation-guide-color`, `--slotted-side-navigation-hover-background`, `--slotted-side-navigation-hover-color`, `--slotted-side-navigation-indent`, `--slotted-side-navigation-indent-step`, `--slotted-side-navigation-radius`, `--slotted-side-navigation-row-gap`, `--slotted-side-navigation-section-color`, `--slotted-side-navigation-section-gap`, `--slotted-side-navigation-section-label-gap`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-7`, `--slotted-surface-raised`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-popover`
134
134
 
135
135
  ## Examples
136
136