@ceed/ads 1.37.0-next.1 → 1.38.0-next.1

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.
package/dist/index.cjs CHANGED
@@ -3289,11 +3289,22 @@ function Select(props) {
3289
3289
  disabled,
3290
3290
  required,
3291
3291
  onChange,
3292
+ // NOTE: id 를 FormControl 에 넘겨 htmlFor/labelId(`${id}-label`)를 결정론적으로 만든다.
3293
+ // Joy FormControl context 가 FormLabel(id) ↔ Select button(aria-labelledby)을 자동 결선하므로,
3294
+ // 외부에서 useId 로 라벨/버튼 ARIA 를 수동 결합할 필요가 없다.
3295
+ id,
3296
+ slotProps,
3292
3297
  // NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
3293
3298
  sx,
3294
3299
  className,
3295
3300
  ...innerProps
3296
3301
  } = props;
3302
+ const {
3303
+ formControl: formControlProps,
3304
+ formLabel: formLabelProps,
3305
+ formHelperText: formHelperTextProps,
3306
+ ...joySlotProps
3307
+ } = slotProps ?? {};
3297
3308
  const options = (0, import_react23.useMemo)(
3298
3309
  () => props.options.map((option) => {
3299
3310
  if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
@@ -3334,6 +3345,7 @@ function Select(props) {
3334
3345
  disabled,
3335
3346
  size,
3336
3347
  color: error ? "danger" : color,
3348
+ slotProps: joySlotProps,
3337
3349
  onChange: handleChange,
3338
3350
  renderValue: (selected) => {
3339
3351
  if (!selected) return null;
@@ -3353,12 +3365,14 @@ function Select(props) {
3353
3365
  size,
3354
3366
  color,
3355
3367
  error,
3368
+ id,
3356
3369
  sx,
3357
- className
3370
+ className,
3371
+ ...formControlProps
3358
3372
  },
3359
- label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, null, label),
3373
+ label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, { ...formLabelProps }, label),
3360
3374
  select,
3361
- helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, null, helperText)
3375
+ helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
3362
3376
  );
3363
3377
  }
3364
3378
  Select.displayName = "Select";
@@ -8604,11 +8618,10 @@ var defaultTheme = (0, import_joy73.extendTheme)({
8604
8618
  size: "sm"
8605
8619
  }
8606
8620
  },
8607
- JoyTabList: {
8608
- defaultProps: {
8609
- size: "sm"
8610
- }
8611
- },
8621
+ // NOTE: TabList 는 size 를 직접 지정하지 않는다. Joy 의 TabList 는 theme defaultProps 가
8622
+ // 부모 Tabs 의 context(SizeTabsContext)보다 우선하므로(`sizeProp != null ? sizeProp : tabsSize`),
8623
+ // 여기서 sm 을 지정하면 <Tabs size="lg"> 처럼 부모에서 내려준 size 를 상속하지 못한다.
8624
+ // JoyTabs 의 기본값 sm 이 context 로 전파되어 TabList 도 기본 sm 이 된다.
8612
8625
  JoyStepper: {
8613
8626
  defaultProps: {
8614
8627
  size: "sm"
package/dist/index.js CHANGED
@@ -3166,11 +3166,22 @@ function Select(props) {
3166
3166
  disabled,
3167
3167
  required,
3168
3168
  onChange,
3169
+ // NOTE: id 를 FormControl 에 넘겨 htmlFor/labelId(`${id}-label`)를 결정론적으로 만든다.
3170
+ // Joy FormControl context 가 FormLabel(id) ↔ Select button(aria-labelledby)을 자동 결선하므로,
3171
+ // 외부에서 useId 로 라벨/버튼 ARIA 를 수동 결합할 필요가 없다.
3172
+ id,
3173
+ slotProps,
3169
3174
  // NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
3170
3175
  sx,
3171
3176
  className,
3172
3177
  ...innerProps
3173
3178
  } = props;
3179
+ const {
3180
+ formControl: formControlProps,
3181
+ formLabel: formLabelProps,
3182
+ formHelperText: formHelperTextProps,
3183
+ ...joySlotProps
3184
+ } = slotProps ?? {};
3174
3185
  const options = useMemo8(
3175
3186
  () => props.options.map((option) => {
3176
3187
  if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
@@ -3211,6 +3222,7 @@ function Select(props) {
3211
3222
  disabled,
3212
3223
  size,
3213
3224
  color: error ? "danger" : color,
3225
+ slotProps: joySlotProps,
3214
3226
  onChange: handleChange,
3215
3227
  renderValue: (selected) => {
3216
3228
  if (!selected) return null;
@@ -3230,12 +3242,14 @@ function Select(props) {
3230
3242
  size,
3231
3243
  color,
3232
3244
  error,
3245
+ id,
3233
3246
  sx,
3234
- className
3247
+ className,
3248
+ ...formControlProps
3235
3249
  },
3236
- label && /* @__PURE__ */ React21.createElement(FormLabel_default, null, label),
3250
+ label && /* @__PURE__ */ React21.createElement(FormLabel_default, { ...formLabelProps }, label),
3237
3251
  select,
3238
- helperText && /* @__PURE__ */ React21.createElement(FormHelperText_default, null, helperText)
3252
+ helperText && /* @__PURE__ */ React21.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
3239
3253
  );
3240
3254
  }
3241
3255
  Select.displayName = "Select";
@@ -8517,11 +8531,10 @@ var defaultTheme = extendTheme({
8517
8531
  size: "sm"
8518
8532
  }
8519
8533
  },
8520
- JoyTabList: {
8521
- defaultProps: {
8522
- size: "sm"
8523
- }
8524
- },
8534
+ // NOTE: TabList 는 size 를 직접 지정하지 않는다. Joy 의 TabList 는 theme defaultProps 가
8535
+ // 부모 Tabs 의 context(SizeTabsContext)보다 우선하므로(`sizeProp != null ? sizeProp : tabsSize`),
8536
+ // 여기서 sm 을 지정하면 <Tabs size="lg"> 처럼 부모에서 내려준 size 를 상속하지 못한다.
8537
+ // JoyTabs 의 기본값 sm 이 context 로 전파되어 TabList 도 기본 sm 이 된다.
8525
8538
  JoyStepper: {
8526
8539
  defaultProps: {
8527
8540
  size: "sm"