@hjmds/design-contracts 2.3.0 → 2.4.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.
Files changed (44) hide show
  1. package/dist/behaviors.d.ts +6 -0
  2. package/dist/behaviors.d.ts.map +1 -1
  3. package/dist/behaviors.js.map +1 -1
  4. package/dist/calendar.d.ts +59 -0
  5. package/dist/calendar.d.ts.map +1 -1
  6. package/dist/calendar.js +54 -0
  7. package/dist/calendar.js.map +1 -1
  8. package/dist/catalog.d.ts +17 -1
  9. package/dist/catalog.d.ts.map +1 -1
  10. package/dist/component-recipes.d.ts +1 -1
  11. package/dist/component-recipes.d.ts.map +1 -1
  12. package/dist/component-recipes.js +5 -3
  13. package/dist/component-recipes.js.map +1 -1
  14. package/dist/data-table.d.ts +6 -1
  15. package/dist/data-table.d.ts.map +1 -1
  16. package/dist/data-table.js +6 -1
  17. package/dist/data-table.js.map +1 -1
  18. package/dist/semantic-colors.d.ts +6 -0
  19. package/dist/semantic-colors.d.ts.map +1 -1
  20. package/dist/semantic-colors.js +2 -0
  21. package/dist/semantic-colors.js.map +1 -1
  22. package/dist/shortcut-rail.d.ts +7 -1
  23. package/dist/shortcut-rail.d.ts.map +1 -1
  24. package/dist/shortcut-rail.js +7 -1
  25. package/dist/shortcut-rail.js.map +1 -1
  26. package/dist/version.d.ts +1 -1
  27. package/dist/version.js +1 -1
  28. package/dist/version.js.map +1 -1
  29. package/docs/consumer-policy.md +2 -2
  30. package/docs/generated/component-maturity.md +1 -1
  31. package/docs/generated/renderer-evidence.json +3 -3
  32. package/docs/generated/renderer-evidence.md +1 -1
  33. package/docs/generated/showcase-manifest.json +4 -2
  34. package/docs/reference-controls.md +1 -1
  35. package/docs/usage/README.md +5 -5
  36. package/docs/usage/SELECTION.md +1 -1
  37. package/docs/usage/STANDARD.md +1 -1
  38. package/docs/usage/components/calendar.md +15 -0
  39. package/docs/usage/components/card.md +2 -2
  40. package/docs/usage/components/data-table.md +11 -7
  41. package/docs/usage/components/segmented-control.md +1 -1
  42. package/docs/usage/components/select.md +20 -2
  43. package/docs/usage/compositions/shortcut-rail.md +3 -2
  44. package/package.json +1 -1
@@ -223,6 +223,7 @@ export declare const calendarRecipe: {
223
223
  };
224
224
  readonly day: {
225
225
  readonly radius: "full";
226
+ readonly contentGap: 4;
226
227
  readonly label: {
227
228
  readonly color: Readonly<{
228
229
  source: "theme";
@@ -263,7 +264,65 @@ export declare const calendarRecipe: {
263
264
  readonly offset: 2;
264
265
  };
265
266
  };
267
+ /**
268
+ * Folded calendar (2026-11-04, 오늘야구 games screen): one week row with a handle under it that unfolds the month in
269
+ * place. The handle is a chevron pointing where the grid will go (down folded, up unfolded): a plain grab bar did not
270
+ * say it opens anything (same-day user request). It keeps the full touch target.
271
+ */
272
+ readonly fold: {
273
+ readonly handle: {
274
+ readonly icon: {
275
+ readonly expand: "chevronDown";
276
+ readonly collapse: "chevronUp";
277
+ };
278
+ readonly glyph: "md";
279
+ readonly color: Readonly<{
280
+ source: "theme";
281
+ key: "textMuted";
282
+ alpha?: number;
283
+ }>;
284
+ readonly touchTarget: 44;
285
+ };
286
+ };
266
287
  };
288
+ /** Folds the month to one week row and unfolds it again; both renderers render the same row. */
289
+ export type CalendarFold = Readonly<{
290
+ expanded: boolean;
291
+ onExpandedChange(expanded: boolean): void;
292
+ /** Localized accessible name of the handle, such as 「달력 펼치기」/「달력 접기」. */
293
+ label: string;
294
+ }>;
295
+ /**
296
+ * The week rows a calendar shows: every row when unfolded, otherwise the row holding the selected date, then today,
297
+ * then the first date of the grid (2026-11-04).
298
+ */
299
+ export declare function resolveCalendarVisibleRows<Content>(cells: readonly ResolvedCalendarGridCell<Content>[], expanded: boolean): readonly number[];
300
+ /**
301
+ * First and last date the calendar will draw, so a product loads exactly that (2026-11-04: 오늘야구 asked for a six-week
302
+ * grid, past its range API's 31-day limit, and lost every game dot). Folded, that is one week, which may cross into the
303
+ * adjacent month when its cells come from `createCalendarMonthCells(..., { outsideMonth: "adjacent" })`.
304
+ */
305
+ export declare function calendarVisibleDateRange(cells: readonly CalendarDateCellDescriptor[], view: Readonly<{
306
+ expanded: boolean;
307
+ selectedDate?: string | null;
308
+ todayDate?: string;
309
+ }>): Readonly<{
310
+ from: string;
311
+ to: string;
312
+ }> | null;
313
+ /**
314
+ * The header arrows of a folding calendar move one week while folded (the selected date) and one month while unfolded
315
+ * (the focused month), so the folded week never jumps a whole month (2026-11-04 오늘야구 games screen).
316
+ */
317
+ export declare function calendarFoldStep(view: Readonly<{
318
+ expanded: boolean;
319
+ selectedDate: string;
320
+ focusedMonth: string;
321
+ }>, direction: -1 | 1): Readonly<{
322
+ selectedDate: string;
323
+ }> | Readonly<{
324
+ focusedMonth: string;
325
+ }>;
267
326
  /**
268
327
  * Calendar is `shared`, not `adaptive`: the grid is always visible inline
269
328
  * (no popup/Sheet choice to make). Web gets `grid` role + roving-tabindex
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"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"}
package/dist/calendar.js CHANGED
@@ -261,6 +261,9 @@ export const calendarRecipe = {
261
261
  },
262
262
  day: {
263
263
  radius: "full",
264
+ // Space between the date circle and product content (dots, results). Native drew content flush against a
265
+ // selected circle while Web already used this gap (2026-11-04 오늘야구 games screen).
266
+ contentGap: spacing.xxs,
264
267
  label: { color: semanticColors.content.body, numericVariant: "tabular" },
265
268
  outsideFocusedMonthOpacity: opacity.muted,
266
269
  disabledOpacity: opacity.disabled,
@@ -271,7 +274,58 @@ export const calendarRecipe = {
271
274
  },
272
275
  focus: focusIndicatorContract,
273
276
  },
277
+ /**
278
+ * Folded calendar (2026-11-04, 오늘야구 games screen): one week row with a handle under it that unfolds the month in
279
+ * place. The handle is a chevron pointing where the grid will go (down folded, up unfolded): a plain grab bar did not
280
+ * say it opens anything (same-day user request). It keeps the full touch target.
281
+ */
282
+ fold: {
283
+ handle: { icon: { expand: "chevronDown", collapse: "chevronUp" }, glyph: "md", color: semanticColors.content.secondary, touchTarget: control.minTouchTarget },
284
+ },
274
285
  };
286
+ /** Row indexes of a grid to draw: all unfolded; folded, the week of the selected date, then today, then the first date. */
287
+ function visibleRowIndexes(cells, { expanded, selectedDate, todayDate }) {
288
+ const rows = Array.from({ length: Math.ceil(cells.length / GRID_COLUMNS) }, (_, index) => index);
289
+ if (expanded)
290
+ return rows;
291
+ const index = [selectedDate, todayDate].map((date) => date ? cells.findIndex((cell) => cell.date === date) : -1).find((found) => found >= 0)
292
+ ?? cells.findIndex((cell) => cell.date !== undefined);
293
+ return index >= 0 ? [Math.floor(index / GRID_COLUMNS)] : rows.slice(0, 1);
294
+ }
295
+ /**
296
+ * The week rows a calendar shows: every row when unfolded, otherwise the row holding the selected date, then today,
297
+ * then the first date of the grid (2026-11-04).
298
+ */
299
+ export function resolveCalendarVisibleRows(cells, expanded) {
300
+ const dated = cells.filter((cell) => !("filler" in cell));
301
+ return visibleRowIndexes(cells.map((cell) => "filler" in cell ? {} : { date: cell.date }), {
302
+ expanded, selectedDate: dated.find((cell) => cell.isSelected)?.date ?? null, todayDate: dated.find((cell) => cell.isToday)?.date ?? "",
303
+ });
304
+ }
305
+ /**
306
+ * First and last date the calendar will draw, so a product loads exactly that (2026-11-04: 오늘야구 asked for a six-week
307
+ * grid, past its range API's 31-day limit, and lost every game dot). Folded, that is one week, which may cross into the
308
+ * adjacent month when its cells come from `createCalendarMonthCells(..., { outsideMonth: "adjacent" })`.
309
+ */
310
+ export function calendarVisibleDateRange(cells, view) {
311
+ const dates = visibleRowIndexes(cells, view)
312
+ .flatMap((row) => cells.slice(row * GRID_COLUMNS, row * GRID_COLUMNS + GRID_COLUMNS))
313
+ .flatMap((cell) => cell.date ? [cell.date] : []);
314
+ return dates.length ? { from: dates[0], to: dates[dates.length - 1] } : null;
315
+ }
316
+ /**
317
+ * The header arrows of a folding calendar move one week while folded (the selected date) and one month while unfolded
318
+ * (the focused month), so the folded week never jumps a whole month (2026-11-04 오늘야구 games screen).
319
+ */
320
+ export function calendarFoldStep(view, direction) {
321
+ assertIsoCalendarDate(view.selectedDate, "selectedDate");
322
+ assertIsoCalendarMonth(view.focusedMonth, "focusedMonth");
323
+ if (view.expanded) {
324
+ const [year, month] = view.focusedMonth.split("-").map(Number);
325
+ return { focusedMonth: new Date(Date.UTC(year, month - 1 + direction, 1)).toISOString().slice(0, 7) };
326
+ }
327
+ return { selectedDate: new Date(Date.parse(`${view.selectedDate}T00:00:00Z`) + direction * 7 * 86_400_000).toISOString().slice(0, 10) };
328
+ }
275
329
  /**
276
330
  * Calendar is `shared`, not `adaptive`: the grid is always visible inline
277
331
  * (no popup/Sheet choice to make). Web gets `grid` role + roving-tabindex
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReference } from \"./color-references.js\";\nimport type { BehaviorContract, WebKeyboardKey } from \"./behaviors.js\";\nimport type { DesignSystemDirection } from \"./design-system-provider.js\";\nimport type { SemanticIconName } from \"./icon.js\";\nimport { control, glyph, layout, opacity, spacing, stroke, typography, type FontWeightValue, type GlyphSize, type TextVariant } from \"./foundations.js\";\nimport { focusIndicatorContract } from \"./component-contracts.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\n\nconst ISO_DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst ISO_MONTH_PATTERN = /^\\d{4}-(0[1-9]|1[0-2])$/;\nconst GRID_COLUMNS = 7;\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`Calendar ${field} must not be empty`);\n }\n}\n\n/**\n * The descriptor accepts product-owned calendar keys. This only checks the\n * \"YYYY-MM-DD\" shape products already use as their KBO schedule date key.\n */\nexport function isIsoCalendarDate(value: string): boolean {\n return typeof value === \"string\" && ISO_DATE_PATTERN.test(value);\n}\n\nexport function assertIsoCalendarDate(value: string, field: string): void {\n if (!isIsoCalendarDate(value)) {\n throw new TypeError(`Calendar ${field} must be an ISO \"YYYY-MM-DD\" date string`);\n }\n}\n\nexport function isIsoCalendarMonth(value: string): boolean {\n return typeof value === \"string\" && ISO_MONTH_PATTERN.test(value);\n}\n\nexport function assertIsoCalendarMonth(value: string, field: string): void {\n if (!isIsoCalendarMonth(value)) {\n throw new TypeError(`Calendar ${field} must be an ISO \"YYYY-MM\" month string`);\n }\n}\n\n/**\n * One visible cell. A cell with no `date` is a pure filler that keeps the\n * seven-column alignment (a leading/trailing blank before day 1 or after the\n * month's last day) — it is never focusable, selectable, or announced.\n * `content` is an opaque product payload (Yajalal's per-day game count, a\n * dot, anything) the renderer's cell-content slot receives untouched; the\n * grid never inspects it.\n */\nexport type CalendarDateCellDescriptor<Content = unknown> = Readonly<{\n date?: string;\n /** The date exists but falls outside the month currently in focus (a leading/trailing day from an adjacent month). Still selectable unless `disabled`. */\n outsideFocusedMonth?: boolean;\n disabled?: boolean;\n content?: Content;\n}>;\n\n/** Civil Gregorian display cells only; business dates, time zones and the clock remain caller-owned. */\nexport function createCalendarMonthCells(\n month: string,\n { weekStartsOn = 0, outsideMonth = \"adjacent\" }: Readonly<{\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n outsideMonth?: \"adjacent\" | \"blank\";\n }> = {},\n): readonly CalendarDateCellDescriptor[] {\n assertIsoCalendarMonth(month, \"month\");\n if (!Number.isInteger(weekStartsOn) || weekStartsOn < 0 || weekStartsOn > 6) {\n throw new RangeError(\"Calendar weekStartsOn must be an integer from zero to six\");\n }\n if (outsideMonth !== \"adjacent\" && outsideMonth !== \"blank\") {\n throw new TypeError(\"Calendar outsideMonth must be adjacent or blank\");\n }\n // UTC is a coordinate system for civil-day layout, never a conversion of the\n // traveller's/service's date. Local Date arithmetic skips/repeats hours at DST.\n const first = new Date(`${month}-01T00:00:00Z`);\n const next = new Date(first);\n next.setUTCMonth(next.getUTCMonth() + 1);\n const day = 86_400_000;\n const leading = (first.getUTCDay() - weekStartsOn + 7) % 7;\n const count = Math.ceil((leading + (next.getTime() - first.getTime()) / day) / 7) * 7;\n return Array.from({ length: count }, (_, index) => {\n const value = new Date(first.getTime() + (index - leading) * day);\n // Four-digit descriptor keys cannot represent the adjacent year at the\n // outer supported boundaries. Those cells stay non-interactive fillers.\n if (value.getUTCFullYear() < 0 || value.getUTCFullYear() > 9999) return {};\n const date = value.toISOString().slice(0, 10);\n const outsideFocusedMonth = !date.startsWith(month);\n return outsideFocusedMonth\n ? outsideMonth === \"blank\" ? {} : { date, outsideFocusedMonth: true }\n : { date };\n });\n}\n\nexport type CalendarWeekdayLabels = readonly [\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n];\n\n/**\n * Raw product data for one visible month page. Use createCalendarMonthCells\n * for a plain Gregorian page or supply a product-specific grid with content.\n * The renderer validates shape and resolves semantic state, without reading a clock.\n */\nexport type CalendarGridDescriptor<Content = unknown> = Readonly<{\n /** Row-major, seven columns per row (one per weekday), so length must be a positive multiple of seven. */\n cells: readonly CalendarDateCellDescriptor<Content>[];\n /** Localized short weekday labels in the same column order as `cells`, e.g. [\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"]. */\n weekdayLabels: CalendarWeekdayLabels;\n /** ISO date of \"today\" per the product's clock. The grid never calls `Date.now()` itself. */\n todayDate: string;\n}>;\n\nexport function validateCalendarGridDescriptor<Content>(\n grid: CalendarGridDescriptor<Content>,\n): void {\n if (grid.cells.length === 0 || grid.cells.length % GRID_COLUMNS !== 0) {\n throw new RangeError(\"Calendar grid cells must be a non-empty multiple of seven\");\n }\n if (grid.weekdayLabels.length !== GRID_COLUMNS) {\n throw new RangeError(\"Calendar weekdayLabels must have exactly seven entries\");\n }\n grid.weekdayLabels.forEach((label, index) => assertNonEmpty(label, `weekdayLabels[${index}]`));\n assertIsoCalendarDate(grid.todayDate, \"todayDate\");\n const seen = new Set<string>();\n for (const cell of grid.cells) {\n if (cell.date === undefined) continue;\n assertIsoCalendarDate(cell.date, \"cell date\");\n if (seen.has(cell.date)) {\n throw new TypeError(`Duplicate Calendar cell date: ${cell.date}`);\n }\n seen.add(cell.date);\n }\n}\n\n/**\n * A cursor's committed value and the one displayed month page are\n * independent controlled axes, mirroring `SelectSelection`/`SelectOpenState`\n * in spirit: paging the visible month never clears or moves the selection.\n */\nexport type CalendarMonthChangeReason = \"previous\" | \"next\" | \"jump\";\n\nexport type CalendarMonthNavigation =\n | Readonly<{\n focusedMonth: string;\n defaultFocusedMonth?: never;\n onFocusedMonthChange(month: string, reason: CalendarMonthChangeReason): void;\n }>\n | Readonly<{\n focusedMonth?: never;\n defaultFocusedMonth?: string;\n onFocusedMonthChange?: (month: string, reason: CalendarMonthChangeReason) => void;\n }>;\n\nexport function validateCalendarMonthNavigation(navigation: CalendarMonthNavigation): void {\n const month = navigation.focusedMonth ?? navigation.defaultFocusedMonth;\n if (month !== undefined) assertIsoCalendarMonth(month, \"focusedMonth\");\n}\n\n/**\n * Single committed date only. Range selection is deliberately excluded — no\n * Yajalal or BurnTok flow has measured demand for it (see docs/calendar.md).\n */\nexport type CalendarSelection =\n | Readonly<{\n selectedDate: string | null;\n defaultSelectedDate?: never;\n onSelectionChange(date: string | null): void;\n }>\n | Readonly<{\n selectedDate?: never;\n defaultSelectedDate?: string | null;\n onSelectionChange?: (date: string | null) => void;\n }>;\n\nexport function validateCalendarSelection(selection: CalendarSelection): void {\n const selected = selection.selectedDate ?? selection.defaultSelectedDate;\n if (selected != null) assertIsoCalendarDate(selected, \"selectedDate\");\n}\n\nexport type CalendarDescriptor<Content = unknown> = Readonly<{\n grid: CalendarGridDescriptor<Content>;\n /** Product-formatted heading copy (\"2026년 8월\"); the grid never formats a date itself. */\n monthLabel: string;\n}> &\n CalendarMonthNavigation &\n CalendarSelection;\n\nexport function validateCalendarDescriptor<Content>(\n descriptor: CalendarDescriptor<Content>,\n): void {\n validateCalendarGridDescriptor(descriptor.grid);\n assertNonEmpty(descriptor.monthLabel, \"monthLabel\");\n validateCalendarMonthNavigation(descriptor);\n validateCalendarSelection(descriptor);\n}\n\nexport type CalendarAccessibleNameInfo<Content = unknown> = Readonly<{\n date: string;\n isToday: boolean;\n isSelected: boolean;\n disabled: boolean;\n content?: Content;\n}>;\n\n/**\n * \"8월 19일 수요일, 경기 2개, 선택됨\" is assembled by the product from its own\n * `content` payload and locale/grammar — the same reason Steps takes\n * `composeAccessibleName` instead of assembling copy itself.\n */\nexport type ComposeCalendarAccessibleName<Content = unknown> = (\n info: CalendarAccessibleNameInfo<Content>,\n) => string;\n\nexport type ResolvedCalendarDateCell<Content = unknown> = CalendarDateCellDescriptor<Content> &\n Readonly<{\n date: string;\n /** 1-indexed. */\n row: number;\n /** 1-indexed, 1..7. */\n column: number;\n isToday: boolean;\n isSelected: boolean;\n /** `false` when disabled — the cell stays focusable (see `getCalendarNavigationTarget`) but must never commit or close on activate. */\n selectable: boolean;\n accessibleName: string;\n }>;\n\nexport type ResolvedCalendarFillerCell = Readonly<{\n date?: never;\n row: number;\n column: number;\n filler: true;\n}>;\n\nexport type ResolvedCalendarGridCell<Content = unknown> =\n | ResolvedCalendarDateCell<Content>\n | ResolvedCalendarFillerCell;\n\n/**\n * Resolves per-cell semantic state against a selection supplied separately\n * from the raw grid (mirroring `resolveSelectSelectedItem`'s separation of\n * source data from selection state) — the same grid page renders identically\n * whether it is hosted by Calendar or by DatePicker's popover/sheet.\n */\nexport function resolveCalendarGridDescriptor<Content>(\n grid: CalendarGridDescriptor<Content>,\n selectedDate: string | null,\n options: Readonly<{ composeAccessibleName: ComposeCalendarAccessibleName<Content> }>,\n): readonly ResolvedCalendarGridCell<Content>[] {\n validateCalendarGridDescriptor(grid);\n if (typeof options.composeAccessibleName !== \"function\") {\n throw new TypeError(\"Calendar composeAccessibleName must be a function\");\n }\n\n return grid.cells.map((cell, index) => {\n const row = Math.floor(index / GRID_COLUMNS) + 1;\n const column = (index % GRID_COLUMNS) + 1;\n if (cell.date === undefined) {\n return { row, column, filler: true as const };\n }\n const isToday = cell.date === grid.todayDate;\n const isSelected = cell.date === selectedDate;\n const disabled = cell.disabled ?? false;\n const nameInfo: CalendarAccessibleNameInfo<Content> =\n cell.content === undefined\n ? { date: cell.date, isToday, isSelected, disabled }\n : { date: cell.date, isToday, isSelected, disabled, content: cell.content };\n const accessibleName = options.composeAccessibleName(nameInfo);\n if (typeof accessibleName !== \"string\" || accessibleName.trim().length === 0) {\n throw new TypeError(\"Calendar composeAccessibleName must return a non-empty string\");\n }\n return {\n ...cell,\n date: cell.date,\n row,\n column,\n isToday,\n isSelected,\n selectable: !disabled,\n accessibleName,\n };\n });\n}\n\n/** Top-level entry point: validates the descriptor and resolves its grid page. */\nexport function resolveCalendarDescriptor<Content>(\n descriptor: CalendarDescriptor<Content>,\n options: Readonly<{ composeAccessibleName: ComposeCalendarAccessibleName<Content> }>,\n): readonly ResolvedCalendarGridCell<Content>[] {\n validateCalendarDescriptor(descriptor);\n const selectedDate = descriptor.selectedDate ?? descriptor.defaultSelectedDate ?? null;\n return resolveCalendarGridDescriptor(descriptor.grid, selectedDate, options);\n}\n\nexport type CalendarNavigationIntent =\n | \"next-day\"\n | \"previous-day\"\n | \"next-week\"\n | \"previous-week\"\n | \"first-of-week\"\n | \"last-of-week\";\n\n/**\n * ArrowLeft/Right flip under RTL, matching `getSelectionNavigationIntent`'s\n * `direction` parameter.\n */\nexport function getCalendarNavigationIntent(\n key: WebKeyboardKey,\n direction: DesignSystemDirection = \"ltr\",\n): CalendarNavigationIntent | undefined {\n if (key === \"Home\") return \"first-of-week\";\n if (key === \"End\") return \"last-of-week\";\n if (key === \"ArrowDown\") return \"next-week\";\n if (key === \"ArrowUp\") return \"previous-week\";\n if (key === \"ArrowRight\") return direction === \"rtl\" ? \"previous-day\" : \"next-day\";\n if (key === \"ArrowLeft\") return direction === \"rtl\" ? \"next-day\" : \"previous-day\";\n return undefined;\n}\n\nexport type CalendarNavigationResult =\n | Readonly<{ date: string; overflow?: never }>\n | Readonly<{ date?: never; overflow: \"before\" | \"after\" }>;\n\n/**\n * Pure index arithmetic over the fixed seven-column page. Unlike\n * `getCollectionNavigationTarget`, this does NOT skip disabled dates —\n * per the WAI-ARIA date picker dialog pattern, arrow-key focus must land\n * predictably (down always moves exactly one row) even on a disabled date;\n * only the *activate* action is expected to no-op there. Moving past the\n * edge of this page returns an `overflow` signal instead of wrapping, since\n * HJM does not know the adjacent month's shape — the product pages the\n * month and refocuses the corresponding day.\n */\nexport function getCalendarNavigationTarget<Content>(\n grid: CalendarGridDescriptor<Content>,\n currentDate: string,\n intent: CalendarNavigationIntent,\n): CalendarNavigationResult {\n validateCalendarGridDescriptor(grid);\n const currentIndex = grid.cells.findIndex((cell) => cell.date === currentDate);\n if (currentIndex < 0) {\n throw new RangeError(`Calendar currentDate is not part of this grid page: ${currentDate}`);\n }\n\n const findDated = (from: number, step: number): number | undefined => {\n for (let index = from; index >= 0 && index < grid.cells.length; index += step) {\n if (grid.cells[index]?.date !== undefined) return index;\n }\n return undefined;\n };\n\n const rowStart = Math.floor(currentIndex / GRID_COLUMNS) * GRID_COLUMNS;\n const rowEnd = rowStart + GRID_COLUMNS - 1;\n\n if (intent === \"first-of-week\") {\n const found = findDated(rowStart, 1);\n return found !== undefined && found <= rowEnd\n ? { date: grid.cells[found]!.date! }\n : { overflow: \"before\" };\n }\n if (intent === \"last-of-week\") {\n const found = findDated(rowEnd, -1);\n return found !== undefined && found >= rowStart\n ? { date: grid.cells[found]!.date! }\n : { overflow: \"after\" };\n }\n\n const forward = intent === \"next-day\" || intent === \"next-week\";\n const stride = intent === \"next-week\" || intent === \"previous-week\" ? GRID_COLUMNS : 1;\n const step = forward ? 1 : -1;\n const target = currentIndex + step * stride;\n if (target < 0) return { overflow: \"before\" };\n if (target >= grid.cells.length) return { overflow: \"after\" };\n if (grid.cells[target]?.date !== undefined) return { date: grid.cells[target]!.date! };\n // Landed on a filler (only reachable for a week-step into a partially\n // filled edge row): keep scanning the same direction for the nearest real\n // date rather than asking a renderer to interpret a blank cell.\n const resolved = findDated(target, step);\n return resolved !== undefined\n ? { date: grid.cells[resolved]!.date! }\n : { overflow: forward ? \"after\" : \"before\" };\n}\n\nexport type CalendarSize = \"compact\" | \"medium\" | \"large\";\n\n/**\n * `today` and `selected` are visually independent (a non-selected today and\n * a selected past day must both read clearly) and neither is color-only:\n * today gets a persistent border, selected gets a filled background, and\n * both remain in `accessibleName`/`isToday`/`isSelected` for assistive tech.\n */\nexport const calendarRecipe = {\n slots: [\n \"root\",\n \"header\",\n \"monthLabel\",\n \"previousMonth\",\n \"nextMonth\",\n \"weekdayRow\",\n \"weekdayLabel\",\n \"grid\",\n \"week\",\n \"day\",\n \"dayLabel\",\n \"content\",\n ] as const,\n defaults: { size: \"medium\" },\n // A week stays scannable: the 1280 Web host spread seven columns to ~135px each (2026-10-17 review). Same width as the\n // DatePicker popover.\n maxWidth: layout.readingMaxWidth / 2,\n header: {\n gap: spacing.xs,\n monthLabel: {\n textVariant: \"title\",\n fontWeight: typography.title.fontWeight,\n color: semanticColors.content.primary,\n },\n navButton: { diameter: control.buttonHeight.medium, color: semanticColors.content.secondary },\n navIcon: { previous: \"chevronStart\", next: \"chevronEnd\" },\n },\n weekdayLabel: {\n textVariant: \"label\",\n color: semanticColors.content.secondary,\n },\n sizes: {\n // Dense annotated calendars need a smaller visual marker without shrinking the hit target.\n compact: { cellDiameter: control.minTouchTarget, indicatorDiameter: 28, textVariant: \"body\", glyph: \"sm\" },\n medium: { cellDiameter: control.minTouchTarget, indicatorDiameter: control.minTouchTarget, textVariant: \"body\", glyph: \"sm\" },\n large: { cellDiameter: glyph.xxl, indicatorDiameter: glyph.xxl, textVariant: \"bodyLarge\", glyph: \"md\" },\n },\n day: {\n radius: \"full\" as const,\n label: { color: semanticColors.content.body, numericVariant: \"tabular\" },\n outsideFocusedMonthOpacity: opacity.muted,\n disabledOpacity: opacity.disabled,\n today: { border: semanticColors.border.focus, borderWidth: stroke.default },\n selected: {\n background: semanticColors.action.brand.background,\n content: semanticColors.action.brand.content,\n },\n focus: focusIndicatorContract,\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { size: CalendarSize };\n maxWidth: number;\n header: {\n gap: number;\n monthLabel: { textVariant: TextVariant; fontWeight: FontWeightValue; color: ColorReference };\n navButton: { diameter: number; color: ColorReference };\n navIcon: { previous: SemanticIconName; next: SemanticIconName };\n };\n weekdayLabel: { textVariant: TextVariant; color: ColorReference };\n sizes: Record<CalendarSize, { cellDiameter: number; indicatorDiameter: number; textVariant: TextVariant; glyph: GlyphSize }>;\n day: {\n radius: \"full\";\n label: { color: ColorReference; numericVariant: \"tabular\" };\n outsideFocusedMonthOpacity: number;\n disabledOpacity: number;\n today: { border: ColorReference; borderWidth: number };\n selected: { background: ColorReference; content: ColorReference };\n focus: typeof focusIndicatorContract;\n };\n};\n\n/**\n * Calendar is `shared`, not `adaptive`: the grid is always visible inline\n * (no popup/Sheet choice to make). Web gets `grid` role + roving-tabindex\n * arrow keys; Native has no composite-widget equivalent, so each date is\n * simply an independently focusable/tappable element and month paging goes\n * through the always-present previous/next buttons on both platforms — same\n * result (the user reaches and picks a date), different path, matching the\n * `beta → stable(adaptive)` gate's standard even though this component\n * itself is not adaptive.\n */\nexport const calendarBehavior = {\n controlled: [\n \"selectedDate\",\n \"defaultSelectedDate\",\n \"onSelectionChange\",\n \"focusedMonth\",\n \"defaultFocusedMonth\",\n \"onFocusedMonthChange\",\n ],\n inputs: [\"grid\", \"monthLabel\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\"],\n value: [\"selected\"],\n },\n web: {\n roles: [\"grid\", \"row\", \"gridcell\", \"button\"],\n keyboard: [\n \"Tab\",\n \"Enter\",\n \"Space\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Home\",\n \"End\",\n ],\n focus: \"roving\",\n },\n native: {\n roles: [\"button\"],\n states: [\"disabled\", \"selected\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"today-and-selected-are-independent-and-both-non-color-marked\",\n \"disabled-dates-remain-focusable-but-never-activate\",\n \"arrow-keys-move-by-day-and-week-inside-the-visible-month-page\",\n \"home-and-end-move-to-the-first-and-last-dated-cell-of-the-focused-row\",\n \"moving-past-the-visible-grid-edge-requests-a-month-change-instead-of-wrapping\",\n \"filler-cells-carry-no-accessible-name-and-are-hidden-from-assistive-tech\",\n \"every-dated-cell-accessible-name-is-composed-by-the-product\",\n \"changing-the-focused-month-never-changes-or-clears-the-selection\",\n \"range-selection-is-not-part-of-the-contract\",\n ],\n} as const satisfies BehaviorContract;\n"]}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReference } from \"./color-references.js\";\nimport type { BehaviorContract, WebKeyboardKey } from \"./behaviors.js\";\nimport type { DesignSystemDirection } from \"./design-system-provider.js\";\nimport type { SemanticIconName } from \"./icon.js\";\nimport { control, glyph, layout, opacity, spacing, stroke, typography, type FontWeightValue, type GlyphSize, type TextVariant } from \"./foundations.js\";\nimport { focusIndicatorContract } from \"./component-contracts.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\n\nconst ISO_DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst ISO_MONTH_PATTERN = /^\\d{4}-(0[1-9]|1[0-2])$/;\nconst GRID_COLUMNS = 7;\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`Calendar ${field} must not be empty`);\n }\n}\n\n/**\n * The descriptor accepts product-owned calendar keys. This only checks the\n * \"YYYY-MM-DD\" shape products already use as their KBO schedule date key.\n */\nexport function isIsoCalendarDate(value: string): boolean {\n return typeof value === \"string\" && ISO_DATE_PATTERN.test(value);\n}\n\nexport function assertIsoCalendarDate(value: string, field: string): void {\n if (!isIsoCalendarDate(value)) {\n throw new TypeError(`Calendar ${field} must be an ISO \"YYYY-MM-DD\" date string`);\n }\n}\n\nexport function isIsoCalendarMonth(value: string): boolean {\n return typeof value === \"string\" && ISO_MONTH_PATTERN.test(value);\n}\n\nexport function assertIsoCalendarMonth(value: string, field: string): void {\n if (!isIsoCalendarMonth(value)) {\n throw new TypeError(`Calendar ${field} must be an ISO \"YYYY-MM\" month string`);\n }\n}\n\n/**\n * One visible cell. A cell with no `date` is a pure filler that keeps the\n * seven-column alignment (a leading/trailing blank before day 1 or after the\n * month's last day) — it is never focusable, selectable, or announced.\n * `content` is an opaque product payload (Yajalal's per-day game count, a\n * dot, anything) the renderer's cell-content slot receives untouched; the\n * grid never inspects it.\n */\nexport type CalendarDateCellDescriptor<Content = unknown> = Readonly<{\n date?: string;\n /** The date exists but falls outside the month currently in focus (a leading/trailing day from an adjacent month). Still selectable unless `disabled`. */\n outsideFocusedMonth?: boolean;\n disabled?: boolean;\n content?: Content;\n}>;\n\n/** Civil Gregorian display cells only; business dates, time zones and the clock remain caller-owned. */\nexport function createCalendarMonthCells(\n month: string,\n { weekStartsOn = 0, outsideMonth = \"adjacent\" }: Readonly<{\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n outsideMonth?: \"adjacent\" | \"blank\";\n }> = {},\n): readonly CalendarDateCellDescriptor[] {\n assertIsoCalendarMonth(month, \"month\");\n if (!Number.isInteger(weekStartsOn) || weekStartsOn < 0 || weekStartsOn > 6) {\n throw new RangeError(\"Calendar weekStartsOn must be an integer from zero to six\");\n }\n if (outsideMonth !== \"adjacent\" && outsideMonth !== \"blank\") {\n throw new TypeError(\"Calendar outsideMonth must be adjacent or blank\");\n }\n // UTC is a coordinate system for civil-day layout, never a conversion of the\n // traveller's/service's date. Local Date arithmetic skips/repeats hours at DST.\n const first = new Date(`${month}-01T00:00:00Z`);\n const next = new Date(first);\n next.setUTCMonth(next.getUTCMonth() + 1);\n const day = 86_400_000;\n const leading = (first.getUTCDay() - weekStartsOn + 7) % 7;\n const count = Math.ceil((leading + (next.getTime() - first.getTime()) / day) / 7) * 7;\n return Array.from({ length: count }, (_, index) => {\n const value = new Date(first.getTime() + (index - leading) * day);\n // Four-digit descriptor keys cannot represent the adjacent year at the\n // outer supported boundaries. Those cells stay non-interactive fillers.\n if (value.getUTCFullYear() < 0 || value.getUTCFullYear() > 9999) return {};\n const date = value.toISOString().slice(0, 10);\n const outsideFocusedMonth = !date.startsWith(month);\n return outsideFocusedMonth\n ? outsideMonth === \"blank\" ? {} : { date, outsideFocusedMonth: true }\n : { date };\n });\n}\n\nexport type CalendarWeekdayLabels = readonly [\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n];\n\n/**\n * Raw product data for one visible month page. Use createCalendarMonthCells\n * for a plain Gregorian page or supply a product-specific grid with content.\n * The renderer validates shape and resolves semantic state, without reading a clock.\n */\nexport type CalendarGridDescriptor<Content = unknown> = Readonly<{\n /** Row-major, seven columns per row (one per weekday), so length must be a positive multiple of seven. */\n cells: readonly CalendarDateCellDescriptor<Content>[];\n /** Localized short weekday labels in the same column order as `cells`, e.g. [\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"]. */\n weekdayLabels: CalendarWeekdayLabels;\n /** ISO date of \"today\" per the product's clock. The grid never calls `Date.now()` itself. */\n todayDate: string;\n}>;\n\nexport function validateCalendarGridDescriptor<Content>(\n grid: CalendarGridDescriptor<Content>,\n): void {\n if (grid.cells.length === 0 || grid.cells.length % GRID_COLUMNS !== 0) {\n throw new RangeError(\"Calendar grid cells must be a non-empty multiple of seven\");\n }\n if (grid.weekdayLabels.length !== GRID_COLUMNS) {\n throw new RangeError(\"Calendar weekdayLabels must have exactly seven entries\");\n }\n grid.weekdayLabels.forEach((label, index) => assertNonEmpty(label, `weekdayLabels[${index}]`));\n assertIsoCalendarDate(grid.todayDate, \"todayDate\");\n const seen = new Set<string>();\n for (const cell of grid.cells) {\n if (cell.date === undefined) continue;\n assertIsoCalendarDate(cell.date, \"cell date\");\n if (seen.has(cell.date)) {\n throw new TypeError(`Duplicate Calendar cell date: ${cell.date}`);\n }\n seen.add(cell.date);\n }\n}\n\n/**\n * A cursor's committed value and the one displayed month page are\n * independent controlled axes, mirroring `SelectSelection`/`SelectOpenState`\n * in spirit: paging the visible month never clears or moves the selection.\n */\nexport type CalendarMonthChangeReason = \"previous\" | \"next\" | \"jump\";\n\nexport type CalendarMonthNavigation =\n | Readonly<{\n focusedMonth: string;\n defaultFocusedMonth?: never;\n onFocusedMonthChange(month: string, reason: CalendarMonthChangeReason): void;\n }>\n | Readonly<{\n focusedMonth?: never;\n defaultFocusedMonth?: string;\n onFocusedMonthChange?: (month: string, reason: CalendarMonthChangeReason) => void;\n }>;\n\nexport function validateCalendarMonthNavigation(navigation: CalendarMonthNavigation): void {\n const month = navigation.focusedMonth ?? navigation.defaultFocusedMonth;\n if (month !== undefined) assertIsoCalendarMonth(month, \"focusedMonth\");\n}\n\n/**\n * Single committed date only. Range selection is deliberately excluded — no\n * Yajalal or BurnTok flow has measured demand for it (see docs/calendar.md).\n */\nexport type CalendarSelection =\n | Readonly<{\n selectedDate: string | null;\n defaultSelectedDate?: never;\n onSelectionChange(date: string | null): void;\n }>\n | Readonly<{\n selectedDate?: never;\n defaultSelectedDate?: string | null;\n onSelectionChange?: (date: string | null) => void;\n }>;\n\nexport function validateCalendarSelection(selection: CalendarSelection): void {\n const selected = selection.selectedDate ?? selection.defaultSelectedDate;\n if (selected != null) assertIsoCalendarDate(selected, \"selectedDate\");\n}\n\nexport type CalendarDescriptor<Content = unknown> = Readonly<{\n grid: CalendarGridDescriptor<Content>;\n /** Product-formatted heading copy (\"2026년 8월\"); the grid never formats a date itself. */\n monthLabel: string;\n}> &\n CalendarMonthNavigation &\n CalendarSelection;\n\nexport function validateCalendarDescriptor<Content>(\n descriptor: CalendarDescriptor<Content>,\n): void {\n validateCalendarGridDescriptor(descriptor.grid);\n assertNonEmpty(descriptor.monthLabel, \"monthLabel\");\n validateCalendarMonthNavigation(descriptor);\n validateCalendarSelection(descriptor);\n}\n\nexport type CalendarAccessibleNameInfo<Content = unknown> = Readonly<{\n date: string;\n isToday: boolean;\n isSelected: boolean;\n disabled: boolean;\n content?: Content;\n}>;\n\n/**\n * \"8월 19일 수요일, 경기 2개, 선택됨\" is assembled by the product from its own\n * `content` payload and locale/grammar — the same reason Steps takes\n * `composeAccessibleName` instead of assembling copy itself.\n */\nexport type ComposeCalendarAccessibleName<Content = unknown> = (\n info: CalendarAccessibleNameInfo<Content>,\n) => string;\n\nexport type ResolvedCalendarDateCell<Content = unknown> = CalendarDateCellDescriptor<Content> &\n Readonly<{\n date: string;\n /** 1-indexed. */\n row: number;\n /** 1-indexed, 1..7. */\n column: number;\n isToday: boolean;\n isSelected: boolean;\n /** `false` when disabled — the cell stays focusable (see `getCalendarNavigationTarget`) but must never commit or close on activate. */\n selectable: boolean;\n accessibleName: string;\n }>;\n\nexport type ResolvedCalendarFillerCell = Readonly<{\n date?: never;\n row: number;\n column: number;\n filler: true;\n}>;\n\nexport type ResolvedCalendarGridCell<Content = unknown> =\n | ResolvedCalendarDateCell<Content>\n | ResolvedCalendarFillerCell;\n\n/**\n * Resolves per-cell semantic state against a selection supplied separately\n * from the raw grid (mirroring `resolveSelectSelectedItem`'s separation of\n * source data from selection state) — the same grid page renders identically\n * whether it is hosted by Calendar or by DatePicker's popover/sheet.\n */\nexport function resolveCalendarGridDescriptor<Content>(\n grid: CalendarGridDescriptor<Content>,\n selectedDate: string | null,\n options: Readonly<{ composeAccessibleName: ComposeCalendarAccessibleName<Content> }>,\n): readonly ResolvedCalendarGridCell<Content>[] {\n validateCalendarGridDescriptor(grid);\n if (typeof options.composeAccessibleName !== \"function\") {\n throw new TypeError(\"Calendar composeAccessibleName must be a function\");\n }\n\n return grid.cells.map((cell, index) => {\n const row = Math.floor(index / GRID_COLUMNS) + 1;\n const column = (index % GRID_COLUMNS) + 1;\n if (cell.date === undefined) {\n return { row, column, filler: true as const };\n }\n const isToday = cell.date === grid.todayDate;\n const isSelected = cell.date === selectedDate;\n const disabled = cell.disabled ?? false;\n const nameInfo: CalendarAccessibleNameInfo<Content> =\n cell.content === undefined\n ? { date: cell.date, isToday, isSelected, disabled }\n : { date: cell.date, isToday, isSelected, disabled, content: cell.content };\n const accessibleName = options.composeAccessibleName(nameInfo);\n if (typeof accessibleName !== \"string\" || accessibleName.trim().length === 0) {\n throw new TypeError(\"Calendar composeAccessibleName must return a non-empty string\");\n }\n return {\n ...cell,\n date: cell.date,\n row,\n column,\n isToday,\n isSelected,\n selectable: !disabled,\n accessibleName,\n };\n });\n}\n\n/** Top-level entry point: validates the descriptor and resolves its grid page. */\nexport function resolveCalendarDescriptor<Content>(\n descriptor: CalendarDescriptor<Content>,\n options: Readonly<{ composeAccessibleName: ComposeCalendarAccessibleName<Content> }>,\n): readonly ResolvedCalendarGridCell<Content>[] {\n validateCalendarDescriptor(descriptor);\n const selectedDate = descriptor.selectedDate ?? descriptor.defaultSelectedDate ?? null;\n return resolveCalendarGridDescriptor(descriptor.grid, selectedDate, options);\n}\n\nexport type CalendarNavigationIntent =\n | \"next-day\"\n | \"previous-day\"\n | \"next-week\"\n | \"previous-week\"\n | \"first-of-week\"\n | \"last-of-week\";\n\n/**\n * ArrowLeft/Right flip under RTL, matching `getSelectionNavigationIntent`'s\n * `direction` parameter.\n */\nexport function getCalendarNavigationIntent(\n key: WebKeyboardKey,\n direction: DesignSystemDirection = \"ltr\",\n): CalendarNavigationIntent | undefined {\n if (key === \"Home\") return \"first-of-week\";\n if (key === \"End\") return \"last-of-week\";\n if (key === \"ArrowDown\") return \"next-week\";\n if (key === \"ArrowUp\") return \"previous-week\";\n if (key === \"ArrowRight\") return direction === \"rtl\" ? \"previous-day\" : \"next-day\";\n if (key === \"ArrowLeft\") return direction === \"rtl\" ? \"next-day\" : \"previous-day\";\n return undefined;\n}\n\nexport type CalendarNavigationResult =\n | Readonly<{ date: string; overflow?: never }>\n | Readonly<{ date?: never; overflow: \"before\" | \"after\" }>;\n\n/**\n * Pure index arithmetic over the fixed seven-column page. Unlike\n * `getCollectionNavigationTarget`, this does NOT skip disabled dates —\n * per the WAI-ARIA date picker dialog pattern, arrow-key focus must land\n * predictably (down always moves exactly one row) even on a disabled date;\n * only the *activate* action is expected to no-op there. Moving past the\n * edge of this page returns an `overflow` signal instead of wrapping, since\n * HJM does not know the adjacent month's shape — the product pages the\n * month and refocuses the corresponding day.\n */\nexport function getCalendarNavigationTarget<Content>(\n grid: CalendarGridDescriptor<Content>,\n currentDate: string,\n intent: CalendarNavigationIntent,\n): CalendarNavigationResult {\n validateCalendarGridDescriptor(grid);\n const currentIndex = grid.cells.findIndex((cell) => cell.date === currentDate);\n if (currentIndex < 0) {\n throw new RangeError(`Calendar currentDate is not part of this grid page: ${currentDate}`);\n }\n\n const findDated = (from: number, step: number): number | undefined => {\n for (let index = from; index >= 0 && index < grid.cells.length; index += step) {\n if (grid.cells[index]?.date !== undefined) return index;\n }\n return undefined;\n };\n\n const rowStart = Math.floor(currentIndex / GRID_COLUMNS) * GRID_COLUMNS;\n const rowEnd = rowStart + GRID_COLUMNS - 1;\n\n if (intent === \"first-of-week\") {\n const found = findDated(rowStart, 1);\n return found !== undefined && found <= rowEnd\n ? { date: grid.cells[found]!.date! }\n : { overflow: \"before\" };\n }\n if (intent === \"last-of-week\") {\n const found = findDated(rowEnd, -1);\n return found !== undefined && found >= rowStart\n ? { date: grid.cells[found]!.date! }\n : { overflow: \"after\" };\n }\n\n const forward = intent === \"next-day\" || intent === \"next-week\";\n const stride = intent === \"next-week\" || intent === \"previous-week\" ? GRID_COLUMNS : 1;\n const step = forward ? 1 : -1;\n const target = currentIndex + step * stride;\n if (target < 0) return { overflow: \"before\" };\n if (target >= grid.cells.length) return { overflow: \"after\" };\n if (grid.cells[target]?.date !== undefined) return { date: grid.cells[target]!.date! };\n // Landed on a filler (only reachable for a week-step into a partially\n // filled edge row): keep scanning the same direction for the nearest real\n // date rather than asking a renderer to interpret a blank cell.\n const resolved = findDated(target, step);\n return resolved !== undefined\n ? { date: grid.cells[resolved]!.date! }\n : { overflow: forward ? \"after\" : \"before\" };\n}\n\nexport type CalendarSize = \"compact\" | \"medium\" | \"large\";\n\n/**\n * `today` and `selected` are visually independent (a non-selected today and\n * a selected past day must both read clearly) and neither is color-only:\n * today gets a persistent border, selected gets a filled background, and\n * both remain in `accessibleName`/`isToday`/`isSelected` for assistive tech.\n */\nexport const calendarRecipe = {\n slots: [\n \"root\",\n \"header\",\n \"monthLabel\",\n \"previousMonth\",\n \"nextMonth\",\n \"weekdayRow\",\n \"weekdayLabel\",\n \"grid\",\n \"week\",\n \"day\",\n \"dayLabel\",\n \"content\",\n ] as const,\n defaults: { size: \"medium\" },\n // A week stays scannable: the 1280 Web host spread seven columns to ~135px each (2026-10-17 review). Same width as the\n // DatePicker popover.\n maxWidth: layout.readingMaxWidth / 2,\n header: {\n gap: spacing.xs,\n monthLabel: {\n textVariant: \"title\",\n fontWeight: typography.title.fontWeight,\n color: semanticColors.content.primary,\n },\n navButton: { diameter: control.buttonHeight.medium, color: semanticColors.content.secondary },\n navIcon: { previous: \"chevronStart\", next: \"chevronEnd\" },\n },\n weekdayLabel: {\n textVariant: \"label\",\n color: semanticColors.content.secondary,\n },\n sizes: {\n // Dense annotated calendars need a smaller visual marker without shrinking the hit target.\n compact: { cellDiameter: control.minTouchTarget, indicatorDiameter: 28, textVariant: \"body\", glyph: \"sm\" },\n medium: { cellDiameter: control.minTouchTarget, indicatorDiameter: control.minTouchTarget, textVariant: \"body\", glyph: \"sm\" },\n large: { cellDiameter: glyph.xxl, indicatorDiameter: glyph.xxl, textVariant: \"bodyLarge\", glyph: \"md\" },\n },\n day: {\n radius: \"full\" as const,\n // Space between the date circle and product content (dots, results). Native drew content flush against a\n // selected circle while Web already used this gap (2026-11-04 오늘야구 games screen).\n contentGap: spacing.xxs,\n label: { color: semanticColors.content.body, numericVariant: \"tabular\" },\n outsideFocusedMonthOpacity: opacity.muted,\n disabledOpacity: opacity.disabled,\n today: { border: semanticColors.border.focus, borderWidth: stroke.default },\n selected: {\n background: semanticColors.action.brand.background,\n content: semanticColors.action.brand.content,\n },\n focus: focusIndicatorContract,\n },\n /**\n * Folded calendar (2026-11-04, 오늘야구 games screen): one week row with a handle under it that unfolds the month in\n * place. The handle is a chevron pointing where the grid will go (down folded, up unfolded): a plain grab bar did not\n * say it opens anything (same-day user request). It keeps the full touch target.\n */\n fold: {\n handle: { icon: { expand: \"chevronDown\", collapse: \"chevronUp\" }, glyph: \"md\", color: semanticColors.content.secondary, touchTarget: control.minTouchTarget },\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { size: CalendarSize };\n maxWidth: number;\n header: {\n gap: number;\n monthLabel: { textVariant: TextVariant; fontWeight: FontWeightValue; color: ColorReference };\n navButton: { diameter: number; color: ColorReference };\n navIcon: { previous: SemanticIconName; next: SemanticIconName };\n };\n weekdayLabel: { textVariant: TextVariant; color: ColorReference };\n sizes: Record<CalendarSize, { cellDiameter: number; indicatorDiameter: number; textVariant: TextVariant; glyph: GlyphSize }>;\n day: {\n radius: \"full\";\n contentGap: number;\n label: { color: ColorReference; numericVariant: \"tabular\" };\n outsideFocusedMonthOpacity: number;\n disabledOpacity: number;\n today: { border: ColorReference; borderWidth: number };\n selected: { background: ColorReference; content: ColorReference };\n focus: typeof focusIndicatorContract;\n };\n fold: { handle: { icon: { expand: SemanticIconName; collapse: SemanticIconName }; glyph: GlyphSize; color: ColorReference; touchTarget: number } };\n};\n\n/** Folds the month to one week row and unfolds it again; both renderers render the same row. */\nexport type CalendarFold = Readonly<{\n expanded: boolean;\n onExpandedChange(expanded: boolean): void;\n /** Localized accessible name of the handle, such as 「달력 펼치기」/「달력 접기」. */\n label: string;\n}>;\n\n/** Row indexes of a grid to draw: all unfolded; folded, the week of the selected date, then today, then the first date. */\nfunction visibleRowIndexes(\n cells: readonly Readonly<{ date?: string }>[],\n { expanded, selectedDate, todayDate }: Readonly<{ expanded: boolean; selectedDate?: string | null; todayDate?: string }>,\n): readonly number[] {\n const rows = Array.from({ length: Math.ceil(cells.length / GRID_COLUMNS) }, (_, index) => index);\n if (expanded) return rows;\n const index = [selectedDate, todayDate].map((date) => date ? cells.findIndex((cell) => cell.date === date) : -1).find((found) => found >= 0)\n ?? cells.findIndex((cell) => cell.date !== undefined);\n return index >= 0 ? [Math.floor(index / GRID_COLUMNS)] : rows.slice(0, 1);\n}\n\n/**\n * The week rows a calendar shows: every row when unfolded, otherwise the row holding the selected date, then today,\n * then the first date of the grid (2026-11-04).\n */\nexport function resolveCalendarVisibleRows<Content>(\n cells: readonly ResolvedCalendarGridCell<Content>[],\n expanded: boolean,\n): readonly number[] {\n const dated = cells.filter((cell): cell is ResolvedCalendarDateCell<Content> => !(\"filler\" in cell));\n return visibleRowIndexes(cells.map((cell) => \"filler\" in cell ? {} : { date: cell.date }), {\n expanded, selectedDate: dated.find((cell) => cell.isSelected)?.date ?? null, todayDate: dated.find((cell) => cell.isToday)?.date ?? \"\",\n });\n}\n\n/**\n * First and last date the calendar will draw, so a product loads exactly that (2026-11-04: 오늘야구 asked for a six-week\n * grid, past its range API's 31-day limit, and lost every game dot). Folded, that is one week, which may cross into the\n * adjacent month when its cells come from `createCalendarMonthCells(..., { outsideMonth: \"adjacent\" })`.\n */\nexport function calendarVisibleDateRange(\n cells: readonly CalendarDateCellDescriptor[],\n view: Readonly<{ expanded: boolean; selectedDate?: string | null; todayDate?: string }>,\n): Readonly<{ from: string; to: string }> | null {\n const dates = visibleRowIndexes(cells, view)\n .flatMap((row) => cells.slice(row * GRID_COLUMNS, row * GRID_COLUMNS + GRID_COLUMNS))\n .flatMap((cell) => cell.date ? [cell.date] : []);\n return dates.length ? { from: dates[0]!, to: dates[dates.length - 1]! } : null;\n}\n\n/**\n * The header arrows of a folding calendar move one week while folded (the selected date) and one month while unfolded\n * (the focused month), so the folded week never jumps a whole month (2026-11-04 오늘야구 games screen).\n */\nexport function calendarFoldStep(\n view: Readonly<{ expanded: boolean; selectedDate: string; focusedMonth: string }>,\n direction: -1 | 1,\n): Readonly<{ selectedDate: string }> | Readonly<{ focusedMonth: string }> {\n assertIsoCalendarDate(view.selectedDate, \"selectedDate\");\n assertIsoCalendarMonth(view.focusedMonth, \"focusedMonth\");\n if (view.expanded) {\n const [year, month] = view.focusedMonth.split(\"-\").map(Number);\n return { focusedMonth: new Date(Date.UTC(year!, month! - 1 + direction, 1)).toISOString().slice(0, 7) };\n }\n return { selectedDate: new Date(Date.parse(`${view.selectedDate}T00:00:00Z`) + direction * 7 * 86_400_000).toISOString().slice(0, 10) };\n}\n\n/**\n * Calendar is `shared`, not `adaptive`: the grid is always visible inline\n * (no popup/Sheet choice to make). Web gets `grid` role + roving-tabindex\n * arrow keys; Native has no composite-widget equivalent, so each date is\n * simply an independently focusable/tappable element and month paging goes\n * through the always-present previous/next buttons on both platforms — same\n * result (the user reaches and picks a date), different path, matching the\n * `beta → stable(adaptive)` gate's standard even though this component\n * itself is not adaptive.\n */\nexport const calendarBehavior = {\n controlled: [\n \"selectedDate\",\n \"defaultSelectedDate\",\n \"onSelectionChange\",\n \"focusedMonth\",\n \"defaultFocusedMonth\",\n \"onFocusedMonthChange\",\n ],\n inputs: [\"grid\", \"monthLabel\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\"],\n value: [\"selected\"],\n },\n web: {\n roles: [\"grid\", \"row\", \"gridcell\", \"button\"],\n keyboard: [\n \"Tab\",\n \"Enter\",\n \"Space\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Home\",\n \"End\",\n ],\n focus: \"roving\",\n },\n native: {\n roles: [\"button\"],\n states: [\"disabled\", \"selected\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"today-and-selected-are-independent-and-both-non-color-marked\",\n \"disabled-dates-remain-focusable-but-never-activate\",\n \"arrow-keys-move-by-day-and-week-inside-the-visible-month-page\",\n \"home-and-end-move-to-the-first-and-last-dated-cell-of-the-focused-row\",\n \"moving-past-the-visible-grid-edge-requests-a-month-change-instead-of-wrapping\",\n \"filler-cells-carry-no-accessible-name-and-are-hidden-from-assistive-tech\",\n \"every-dated-cell-accessible-name-is-composed-by-the-product\",\n \"changing-the-focused-month-never-changes-or-clears-the-selection\",\n \"range-selection-is-not-part-of-the-contract\",\n ],\n} as const satisfies BehaviorContract;\n"]}
package/dist/catalog.d.ts CHANGED
@@ -3724,6 +3724,7 @@ export declare const recipeRegistry: {
3724
3724
  };
3725
3725
  readonly day: {
3726
3726
  readonly radius: "full";
3727
+ readonly contentGap: 4;
3727
3728
  readonly label: {
3728
3729
  readonly color: Readonly<{
3729
3730
  source: "theme";
@@ -3764,6 +3765,21 @@ export declare const recipeRegistry: {
3764
3765
  readonly offset: 2;
3765
3766
  };
3766
3767
  };
3768
+ readonly fold: {
3769
+ readonly handle: {
3770
+ readonly icon: {
3771
+ readonly expand: "chevronDown";
3772
+ readonly collapse: "chevronUp";
3773
+ };
3774
+ readonly glyph: "md";
3775
+ readonly color: Readonly<{
3776
+ source: "theme";
3777
+ key: "textMuted";
3778
+ alpha?: number;
3779
+ }>;
3780
+ readonly touchTarget: 44;
3781
+ };
3782
+ };
3767
3783
  };
3768
3784
  readonly cardRecipe: {
3769
3785
  readonly slots: readonly ["root", "media", "backgroundMedia", "backgroundInteraction", "mediaBadges", "badges", "mediaAction", "body", "header", "leading", "title", "description", "content", "actions"];
@@ -6970,7 +6986,7 @@ export declare const recipeRegistry: {
6970
6986
  readonly direction: "row";
6971
6987
  readonly gap: {
6972
6988
  readonly plain: 12;
6973
- readonly card: 16;
6989
+ readonly card: 8;
6974
6990
  readonly grouped: 0;
6975
6991
  readonly chips: 8;
6976
6992
  };
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiHjB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,cAAc,CAAC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiHjB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,cAAc,CAAC"}
@@ -256,7 +256,7 @@ export declare const selectionGroupRecipe: {
256
256
  readonly direction: "row";
257
257
  readonly gap: {
258
258
  readonly plain: 12;
259
- readonly card: 16;
259
+ readonly card: 8;
260
260
  readonly grouped: 0;
261
261
  readonly chips: 8;
262
262
  };
@@ -1 +1 @@
1
- {"version":3,"file":"component-recipes.d.ts","sourceRoot":"","sources":["../src/component-recipes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component-recipes.d.ts","sourceRoot":"","sources":["../src/component-recipes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { solidAccentColor, themeColor } from "./color-references.js";
1
+ import { solidAccentColor } from "./color-references.js";
2
2
  import { THEMES } from "./colors.js";
3
3
  import { contrastRatio } from "./palette-contrast.js";
4
4
  import { collectionItemContract, fieldFrameContract, floatingSurfaceContract, focusIndicatorContract, formSupportContract, } from "./component-contracts.js";
@@ -129,7 +129,9 @@ export const selectionGroupRecipe = {
129
129
  },
130
130
  horizontal: {
131
131
  direction: "row",
132
- gap: { plain: spacing.sm, card: spacing.md, grouped: 0, chips: spacing.xs },
132
+ // A horizontal card rail (오늘야구 일자 카드) read as scattered cards at 16; it now matches the vertical card gap
133
+ // (2026-11-04 user request).
134
+ gap: { plain: spacing.sm, card: spacing.xs, grouped: 0, chips: spacing.xs },
133
135
  },
134
136
  },
135
137
  label: formSupportContract.label,
@@ -1407,7 +1409,7 @@ export const avatarRecipe = {
1407
1409
  * surface는 바탕만, none은 바탕·테두리를 모두 뺀다.
1408
1410
  */
1409
1411
  frames: {
1410
- outlined: { background: semanticColors.canvas, border: themeColor("borderControl", 0.5), borderWidth: 1 },
1412
+ outlined: { background: semanticColors.canvas, border: semanticColors.border.controlSubtle, borderWidth: 1 },
1411
1413
  surface: { background: semanticColors.canvas, border: null, borderWidth: 0 },
1412
1414
  none: { background: null, border: null, borderWidth: 0 },
1413
1415
  },