@zag-js/radio-group 1.41.1 → 2.0.0-next.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.
@@ -84,9 +84,8 @@ function connect(service, normalize) {
84
84
  },
85
85
  getRootProps() {
86
86
  return normalize.element({
87
- ...import_radio_group.parts.root.attrs,
87
+ ...import_radio_group.parts.root.attrs(scope.id),
88
88
  role: "radiogroup",
89
- id: dom.getRootId(scope),
90
89
  "aria-labelledby": dom.getLabelId(scope),
91
90
  "aria-required": prop("required") || void 0,
92
91
  "aria-disabled": groupDisabled || void 0,
@@ -104,7 +103,7 @@ function connect(service, normalize) {
104
103
  },
105
104
  getLabelProps() {
106
105
  return normalize.element({
107
- ...import_radio_group.parts.label.attrs,
106
+ ...import_radio_group.parts.label.attrs(scope.id),
108
107
  dir: prop("dir"),
109
108
  "data-orientation": prop("orientation"),
110
109
  "data-disabled": (0, import_dom_query.dataAttr)(groupDisabled),
@@ -118,7 +117,7 @@ function connect(service, normalize) {
118
117
  getItemProps(props) {
119
118
  const itemState = getItemState(props);
120
119
  return normalize.label({
121
- ...import_radio_group.parts.item.attrs,
120
+ ...import_radio_group.parts.item.attrs(scope.id),
122
121
  dir: prop("dir"),
123
122
  id: dom.getItemId(scope, props.value),
124
123
  htmlFor: dom.getItemHiddenInputId(scope, props.value),
@@ -153,7 +152,7 @@ function connect(service, normalize) {
153
152
  },
154
153
  getItemTextProps(props) {
155
154
  return normalize.element({
156
- ...import_radio_group.parts.itemText.attrs,
155
+ ...import_radio_group.parts.itemText.attrs(scope.id),
157
156
  dir: prop("dir"),
158
157
  id: dom.getItemLabelId(scope, props.value),
159
158
  ...getItemDataAttrs(props)
@@ -162,9 +161,8 @@ function connect(service, normalize) {
162
161
  getItemControlProps(props) {
163
162
  const itemState = getItemState(props);
164
163
  return normalize.element({
165
- ...import_radio_group.parts.itemControl.attrs,
164
+ ...import_radio_group.parts.itemControl.attrs(scope.id),
166
165
  dir: prop("dir"),
167
- id: dom.getItemControlId(scope, props.value),
168
166
  "data-active": (0, import_dom_query.dataAttr)(itemState.active),
169
167
  "aria-hidden": true,
170
168
  ...getItemDataAttrs(props)
@@ -173,7 +171,6 @@ function connect(service, normalize) {
173
171
  getItemHiddenInputProps(props) {
174
172
  const itemState = getItemState(props);
175
173
  return normalize.input({
176
- "data-ownedby": dom.getRootId(scope),
177
174
  id: dom.getItemHiddenInputId(scope, props.value),
178
175
  type: "radio",
179
176
  name: prop("name") || prop("id"),
@@ -219,8 +216,7 @@ function connect(service, normalize) {
219
216
  const rect = context.get("indicatorRect");
220
217
  const animateIndicator = context.get("animateIndicator");
221
218
  return normalize.element({
222
- id: dom.getIndicatorId(scope),
223
- ...import_radio_group.parts.indicator.attrs,
219
+ ...import_radio_group.parts.indicator.attrs(scope.id),
224
220
  dir: prop("dir"),
225
221
  hidden: context.get("value") == null || isRectEmpty(rect),
226
222
  "data-disabled": (0, import_dom_query.dataAttr)(groupDisabled),
@@ -50,9 +50,8 @@ function connect(service, normalize) {
50
50
  },
51
51
  getRootProps() {
52
52
  return normalize.element({
53
- ...parts.root.attrs,
53
+ ...parts.root.attrs(scope.id),
54
54
  role: "radiogroup",
55
- id: dom.getRootId(scope),
56
55
  "aria-labelledby": dom.getLabelId(scope),
57
56
  "aria-required": prop("required") || void 0,
58
57
  "aria-disabled": groupDisabled || void 0,
@@ -70,7 +69,7 @@ function connect(service, normalize) {
70
69
  },
71
70
  getLabelProps() {
72
71
  return normalize.element({
73
- ...parts.label.attrs,
72
+ ...parts.label.attrs(scope.id),
74
73
  dir: prop("dir"),
75
74
  "data-orientation": prop("orientation"),
76
75
  "data-disabled": dataAttr(groupDisabled),
@@ -84,7 +83,7 @@ function connect(service, normalize) {
84
83
  getItemProps(props) {
85
84
  const itemState = getItemState(props);
86
85
  return normalize.label({
87
- ...parts.item.attrs,
86
+ ...parts.item.attrs(scope.id),
88
87
  dir: prop("dir"),
89
88
  id: dom.getItemId(scope, props.value),
90
89
  htmlFor: dom.getItemHiddenInputId(scope, props.value),
@@ -119,7 +118,7 @@ function connect(service, normalize) {
119
118
  },
120
119
  getItemTextProps(props) {
121
120
  return normalize.element({
122
- ...parts.itemText.attrs,
121
+ ...parts.itemText.attrs(scope.id),
123
122
  dir: prop("dir"),
124
123
  id: dom.getItemLabelId(scope, props.value),
125
124
  ...getItemDataAttrs(props)
@@ -128,9 +127,8 @@ function connect(service, normalize) {
128
127
  getItemControlProps(props) {
129
128
  const itemState = getItemState(props);
130
129
  return normalize.element({
131
- ...parts.itemControl.attrs,
130
+ ...parts.itemControl.attrs(scope.id),
132
131
  dir: prop("dir"),
133
- id: dom.getItemControlId(scope, props.value),
134
132
  "data-active": dataAttr(itemState.active),
135
133
  "aria-hidden": true,
136
134
  ...getItemDataAttrs(props)
@@ -139,7 +137,6 @@ function connect(service, normalize) {
139
137
  getItemHiddenInputProps(props) {
140
138
  const itemState = getItemState(props);
141
139
  return normalize.input({
142
- "data-ownedby": dom.getRootId(scope),
143
140
  id: dom.getItemHiddenInputId(scope, props.value),
144
141
  type: "radio",
145
142
  name: prop("name") || prop("id"),
@@ -185,8 +182,7 @@ function connect(service, normalize) {
185
182
  const rect = context.get("indicatorRect");
186
183
  const animateIndicator = context.get("animateIndicator");
187
184
  return normalize.element({
188
- id: dom.getIndicatorId(scope),
189
- ...parts.indicator.attrs,
185
+ ...parts.indicator.attrs(scope.id),
190
186
  dir: prop("dir"),
191
187
  hidden: context.get("value") == null || isRectEmpty(rect),
192
188
  "data-disabled": dataAttr(groupDisabled),
@@ -38,23 +38,21 @@ __export(radio_group_dom_exports, {
38
38
  getRootId: () => getRootId
39
39
  });
40
40
  module.exports = __toCommonJS(radio_group_dom_exports);
41
- var import_dom_query = require("@zag-js/dom-query");
42
- var getRootId = (ctx) => ctx.ids?.root ?? `radio-group:${ctx.id}`;
43
- var getLabelId = (ctx) => ctx.ids?.label ?? `radio-group:${ctx.id}:label`;
44
- var getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `radio-group:${ctx.id}:radio:${value}`;
45
- var getItemHiddenInputId = (ctx, value) => ctx.ids?.itemHiddenInput?.(value) ?? `radio-group:${ctx.id}:radio:input:${value}`;
46
- var getItemControlId = (ctx, value) => ctx.ids?.itemControl?.(value) ?? `radio-group:${ctx.id}:radio:control:${value}`;
47
- var getItemLabelId = (ctx, value) => ctx.ids?.itemLabel?.(value) ?? `radio-group:${ctx.id}:radio:label:${value}`;
48
- var getIndicatorId = (ctx) => ctx.ids?.indicator ?? `radio-group:${ctx.id}:indicator`;
49
- var getRootEl = (ctx) => ctx.getById(getRootId(ctx));
41
+ var import_radio_group = require("./radio-group.anatomy.js");
42
+ var getRootId = (ctx) => ctx.ids?.root ?? `${ctx.id}`;
43
+ var getLabelId = (ctx) => ctx.ids?.label ?? `${ctx.id}:label`;
44
+ var getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `${ctx.id}:radio:${value}`;
45
+ var getItemHiddenInputId = (ctx, value) => ctx.ids?.itemHiddenInput?.(value) ?? `${ctx.id}:radio-input:${value}`;
46
+ var getItemControlId = (ctx, value) => ctx.ids?.itemControl?.(value) ?? `${ctx.id}:radio-control:${value}`;
47
+ var getItemLabelId = (ctx, value) => ctx.ids?.itemLabel?.(value) ?? `${ctx.id}:radio-label:${value}`;
48
+ var getIndicatorId = (ctx) => ctx.ids?.indicator ?? `${ctx.id}:indicator`;
49
+ var getRootEl = (ctx) => ctx.query(ctx.selector(import_radio_group.parts.root));
50
50
  var getItemHiddenInputEl = (ctx, value) => ctx.getById(getItemHiddenInputId(ctx, value));
51
- var getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));
51
+ var getIndicatorEl = (ctx) => ctx.query(ctx.selector(import_radio_group.parts.indicator));
52
52
  var getFirstEnabledInputEl = (ctx) => getRootEl(ctx)?.querySelector("input:not(:disabled)");
53
53
  var getFirstEnabledAndCheckedInputEl = (ctx) => getRootEl(ctx)?.querySelector("input:not(:disabled):checked");
54
54
  var getInputEls = (ctx) => {
55
- const ownerId = CSS.escape(getRootId(ctx));
56
- const selector = `input[type=radio][data-ownedby='${ownerId}']:not([disabled])`;
57
- return (0, import_dom_query.queryAll)(getRootEl(ctx), selector);
55
+ return ctx.queryAll(`${ctx.selector(import_radio_group.parts.item)} input[type=radio]:not([disabled])`);
58
56
  };
59
57
  var getRadioEl = (ctx, value) => {
60
58
  if (!value) return;
@@ -1,21 +1,19 @@
1
1
  // src/radio-group.dom.ts
2
- import { queryAll } from "@zag-js/dom-query";
3
- var getRootId = (ctx) => ctx.ids?.root ?? `radio-group:${ctx.id}`;
4
- var getLabelId = (ctx) => ctx.ids?.label ?? `radio-group:${ctx.id}:label`;
5
- var getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `radio-group:${ctx.id}:radio:${value}`;
6
- var getItemHiddenInputId = (ctx, value) => ctx.ids?.itemHiddenInput?.(value) ?? `radio-group:${ctx.id}:radio:input:${value}`;
7
- var getItemControlId = (ctx, value) => ctx.ids?.itemControl?.(value) ?? `radio-group:${ctx.id}:radio:control:${value}`;
8
- var getItemLabelId = (ctx, value) => ctx.ids?.itemLabel?.(value) ?? `radio-group:${ctx.id}:radio:label:${value}`;
9
- var getIndicatorId = (ctx) => ctx.ids?.indicator ?? `radio-group:${ctx.id}:indicator`;
10
- var getRootEl = (ctx) => ctx.getById(getRootId(ctx));
2
+ import { parts } from "./radio-group.anatomy.mjs";
3
+ var getRootId = (ctx) => ctx.ids?.root ?? `${ctx.id}`;
4
+ var getLabelId = (ctx) => ctx.ids?.label ?? `${ctx.id}:label`;
5
+ var getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `${ctx.id}:radio:${value}`;
6
+ var getItemHiddenInputId = (ctx, value) => ctx.ids?.itemHiddenInput?.(value) ?? `${ctx.id}:radio-input:${value}`;
7
+ var getItemControlId = (ctx, value) => ctx.ids?.itemControl?.(value) ?? `${ctx.id}:radio-control:${value}`;
8
+ var getItemLabelId = (ctx, value) => ctx.ids?.itemLabel?.(value) ?? `${ctx.id}:radio-label:${value}`;
9
+ var getIndicatorId = (ctx) => ctx.ids?.indicator ?? `${ctx.id}:indicator`;
10
+ var getRootEl = (ctx) => ctx.query(ctx.selector(parts.root));
11
11
  var getItemHiddenInputEl = (ctx, value) => ctx.getById(getItemHiddenInputId(ctx, value));
12
- var getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));
12
+ var getIndicatorEl = (ctx) => ctx.query(ctx.selector(parts.indicator));
13
13
  var getFirstEnabledInputEl = (ctx) => getRootEl(ctx)?.querySelector("input:not(:disabled)");
14
14
  var getFirstEnabledAndCheckedInputEl = (ctx) => getRootEl(ctx)?.querySelector("input:not(:disabled):checked");
15
15
  var getInputEls = (ctx) => {
16
- const ownerId = CSS.escape(getRootId(ctx));
17
- const selector = `input[type=radio][data-ownedby='${ownerId}']:not([disabled])`;
18
- return queryAll(getRootEl(ctx), selector);
16
+ return ctx.queryAll(`${ctx.selector(parts.item)} input[type=radio]:not([disabled])`);
19
17
  };
20
18
  var getRadioEl = (ctx, value) => {
21
19
  if (!value) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/radio-group",
3
- "version": "1.41.1",
3
+ "version": "2.0.0-next.0",
4
4
  "description": "Core logic for the radio group widget implemented as a state machine",
5
5
  "keywords": [
6
6
  "js",
@@ -27,12 +27,12 @@
27
27
  "url": "https://github.com/chakra-ui/zag/issues"
28
28
  },
29
29
  "dependencies": {
30
- "@zag-js/anatomy": "1.41.1",
31
- "@zag-js/focus-visible": "1.41.1",
32
- "@zag-js/utils": "1.41.1",
33
- "@zag-js/core": "1.41.1",
34
- "@zag-js/dom-query": "1.41.1",
35
- "@zag-js/types": "1.41.1"
30
+ "@zag-js/anatomy": "2.0.0-next.0",
31
+ "@zag-js/dom-query": "2.0.0-next.0",
32
+ "@zag-js/focus-visible": "2.0.0-next.0",
33
+ "@zag-js/utils": "2.0.0-next.0",
34
+ "@zag-js/core": "2.0.0-next.0",
35
+ "@zag-js/types": "2.0.0-next.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "clean-package": "2.2.0"