pixelize-design-library 2.4.2-beta.62 → 2.4.2-beta.63

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 (166) hide show
  1. package/CHANGELOG.md +75 -2
  2. package/COMPONENT-GOTCHAS.md +25 -6
  3. package/DESIGN-GUIDE.md +12 -5
  4. package/dist/Components/Button/Button.styles.js +51 -21
  5. package/dist/Components/Card/CardProps.d.ts +2 -2
  6. package/dist/Components/ConfirmDialog/ConfirmDialog.js +2 -1
  7. package/dist/Components/CustomModulesTable/CustomModulesTable.js +6 -4
  8. package/dist/Components/CustomModulesTable/EditModuleModal.js +2 -1
  9. package/dist/Components/DatePicker/RangeDatePicker.js +2 -1
  10. package/dist/Components/DatePicker/SingleDatePicker.js +2 -1
  11. package/dist/Components/DatePicker/TimeOnlyPicker.js +2 -1
  12. package/dist/Components/DatePicker/dayStates.js +2 -1
  13. package/dist/Components/Drawer/Drawer.js +2 -1
  14. package/dist/Components/Dropdown/DropDown.js +2 -1
  15. package/dist/Components/FileUpload/FileUpload.js +9 -2
  16. package/dist/Components/FilterSidebar/FilterSidebar.js +7 -4
  17. package/dist/Components/KanbanBoard/AccountCard.js +4 -2
  18. package/dist/Components/NavigationBar/NavigationBar.js +3 -2
  19. package/dist/Components/Notification/Notification.js +4 -3
  20. package/dist/Components/NotificationBell/NotificationPanel.js +4 -3
  21. package/dist/Components/OrganizationDetails/CreateOrgModal.js +2 -1
  22. package/dist/Components/OrganizationDetails/OrganizationDetails.js +5 -3
  23. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +7 -3
  24. package/dist/Components/SearchSelect/SearchSelect.js +42 -21
  25. package/dist/Components/SearchSelect/searchSelectNav.d.ts +13 -0
  26. package/dist/Components/SearchSelect/searchSelectNav.js +40 -0
  27. package/dist/Components/Select/SelectPopup.js +2 -1
  28. package/dist/Components/SelectSearch/SelectSearch.js +2 -1
  29. package/dist/Components/SettingRow/SettingRow.js +2 -1
  30. package/dist/Components/SettingRow/SettingsSection.js +2 -1
  31. package/dist/Components/SideBar/SecondaryBar.js +4 -3
  32. package/dist/Components/SideBar/SideBar.js +16 -13
  33. package/dist/Components/SideBar/SideBarProps.d.ts +1 -1
  34. package/dist/Components/SideBar/components/MenuItemBox.js +7 -4
  35. package/dist/Components/SideBar/components/MenuPopoverContent.js +2 -1
  36. package/dist/Components/SideBar/components/OtherApps.js +2 -1
  37. package/dist/Components/SideBar/components/PinnedSection.js +7 -4
  38. package/dist/Components/SideBar/sidebarMotion.d.ts +2 -0
  39. package/dist/Components/SideBar/sidebarMotion.js +6 -0
  40. package/dist/Components/SignInActivityTable/SignInActivityTable.js +6 -4
  41. package/dist/Components/StageProgress/StageItem.js +5 -2
  42. package/dist/Components/StageProgress/StepperStage.js +2 -2
  43. package/dist/Components/StatCard/StatCard.js +2 -1
  44. package/dist/Components/Table/Table.js +6 -2
  45. package/dist/Components/Table/components/TableActions.js +3 -2
  46. package/dist/Components/Table/filters/CompactSelect.js +2 -1
  47. package/dist/Components/Table/settings/TableSettings.js +7 -2
  48. package/dist/Components/Table/variants/classic.js +3 -2
  49. package/dist/Components/Timeline/Timeline.js +11 -4
  50. package/dist/Components/Toaster/Toaster.js +19 -8
  51. package/dist/Components/Toggle/TableToggle.js +5 -2
  52. package/dist/Components/UserDetails/AddUserModal.js +2 -1
  53. package/dist/Components/UserDetails/ChangeRoleModal.js +2 -1
  54. package/dist/Components/UserDetails/UserDetails.js +3 -1
  55. package/dist/Theme/chakra/Card.styles.d.ts +7 -1
  56. package/dist/Theme/chakra/Card.styles.js +4 -1
  57. package/dist/Theme/chakra/Menu.styles.d.ts +3 -5
  58. package/dist/Theme/chakra/Menu.styles.js +3 -0
  59. package/dist/Theme/chakra/Popover.styles.d.ts +2 -11
  60. package/dist/Theme/chakra/Popover.styles.js +2 -0
  61. package/dist/Theme/chakra/common.web.d.ts +4 -0
  62. package/dist/Theme/chakra/componentStyles.d.ts +11 -3
  63. package/dist/Theme/chakra/componentStyles.js +10 -6
  64. package/dist/Theme/chakra/motion.d.ts +1 -0
  65. package/dist/Theme/chakra/motion.js +2 -1
  66. package/dist/Theme/chakra/overlay.styles.d.ts +5 -0
  67. package/dist/Theme/chakra/overlay.styles.js +4 -1
  68. package/dist/Theme/themeProps.d.ts +4 -0
  69. package/dist/Theme/tokens/brands/index.d.ts +1 -0
  70. package/dist/Theme/tokens/brands/index.js +17 -1
  71. package/dist/Theme/tokens/brands/radiant/palette.light.js +15 -0
  72. package/dist/Theme/tokens/brands/rosewood/palette.light.js +10 -10
  73. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts +7 -29
  74. package/dist/Theme/tokens/brands/zinc/palette.dark.js +3 -35
  75. package/dist/Theme/tokens/builders/buildDarkPalette.d.ts +6 -1
  76. package/dist/Theme/tokens/builders/buildDarkPalette.js +37 -8
  77. package/dist/Theme/tokens/builders/mutedText.d.ts +1 -1
  78. package/dist/Theme/tokens/builders/mutedText.js +13 -3
  79. package/dist/Theme/tokens/builders/planeStep.d.ts +4 -0
  80. package/dist/Theme/tokens/builders/planeStep.js +20 -0
  81. package/dist/Theme/tokens/builders/planes.d.ts +4 -0
  82. package/dist/Theme/tokens/builders/planes.js +33 -0
  83. package/dist/Theme/tokens/builders/skeletonShimmer.d.ts +9 -0
  84. package/dist/Theme/tokens/builders/skeletonShimmer.js +25 -0
  85. package/dist/Theme/tokens/builders/surfaceRaised.d.ts +3 -1
  86. package/dist/Theme/tokens/builders/surfaceRaised.js +18 -8
  87. package/dist/Theme/tokens/builders/surfaceRungs.js +3 -1
  88. package/dist/Theme/tokens/primitives/index.d.ts +2 -2
  89. package/dist/Theme/tokens/primitives/index.js +4 -1
  90. package/dist/Theme/tokens/primitives/motion.d.ts +1 -0
  91. package/dist/Theme/tokens/primitives/motion.js +2 -1
  92. package/dist/Theme/tokens/primitives/shadows.d.ts +16 -0
  93. package/dist/Theme/tokens/primitives/shadows.js +56 -6
  94. package/dist/Theme/tokens/primitives/typography.js +1 -1
  95. package/dist/esm/Components/Button/Button.styles.js +54 -24
  96. package/dist/esm/Components/ConfirmDialog/ConfirmDialog.js +2 -1
  97. package/dist/esm/Components/CustomModulesTable/CustomModulesTable.js +6 -4
  98. package/dist/esm/Components/CustomModulesTable/EditModuleModal.js +2 -1
  99. package/dist/esm/Components/DatePicker/RangeDatePicker.js +2 -1
  100. package/dist/esm/Components/DatePicker/SingleDatePicker.js +2 -1
  101. package/dist/esm/Components/DatePicker/TimeOnlyPicker.js +2 -1
  102. package/dist/esm/Components/DatePicker/dayStates.js +2 -1
  103. package/dist/esm/Components/Drawer/Drawer.js +2 -1
  104. package/dist/esm/Components/Dropdown/DropDown.js +2 -1
  105. package/dist/esm/Components/FileUpload/FileUpload.js +10 -3
  106. package/dist/esm/Components/FilterSidebar/FilterSidebar.js +7 -4
  107. package/dist/esm/Components/KanbanBoard/AccountCard.js +4 -2
  108. package/dist/esm/Components/NavigationBar/NavigationBar.js +3 -2
  109. package/dist/esm/Components/Notification/Notification.js +4 -3
  110. package/dist/esm/Components/NotificationBell/NotificationPanel.js +4 -3
  111. package/dist/esm/Components/OrganizationDetails/CreateOrgModal.js +2 -1
  112. package/dist/esm/Components/OrganizationDetails/OrganizationDetails.js +5 -3
  113. package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +7 -3
  114. package/dist/esm/Components/SearchSelect/SearchSelect.js +42 -21
  115. package/dist/esm/Components/SearchSelect/searchSelectNav.js +32 -0
  116. package/dist/esm/Components/Select/SelectPopup.js +2 -1
  117. package/dist/esm/Components/SelectSearch/SelectSearch.js +2 -1
  118. package/dist/esm/Components/SettingRow/SettingRow.js +2 -1
  119. package/dist/esm/Components/SettingRow/SettingsSection.js +2 -1
  120. package/dist/esm/Components/SideBar/SecondaryBar.js +4 -3
  121. package/dist/esm/Components/SideBar/SideBar.js +17 -14
  122. package/dist/esm/Components/SideBar/components/MenuItemBox.js +7 -4
  123. package/dist/esm/Components/SideBar/components/MenuPopoverContent.js +2 -1
  124. package/dist/esm/Components/SideBar/components/OtherApps.js +2 -1
  125. package/dist/esm/Components/SideBar/components/PinnedSection.js +7 -4
  126. package/dist/esm/Components/SideBar/sidebarMotion.js +3 -0
  127. package/dist/esm/Components/SignInActivityTable/SignInActivityTable.js +6 -4
  128. package/dist/esm/Components/StageProgress/StageItem.js +5 -2
  129. package/dist/esm/Components/StageProgress/StepperStage.js +2 -2
  130. package/dist/esm/Components/StatCard/StatCard.js +2 -1
  131. package/dist/esm/Components/Table/Table.js +8 -4
  132. package/dist/esm/Components/Table/components/TableActions.js +3 -2
  133. package/dist/esm/Components/Table/filters/CompactSelect.js +2 -1
  134. package/dist/esm/Components/Table/settings/TableSettings.js +8 -3
  135. package/dist/esm/Components/Table/variants/classic.js +3 -2
  136. package/dist/esm/Components/Timeline/Timeline.js +11 -4
  137. package/dist/esm/Components/Toaster/Toaster.js +20 -9
  138. package/dist/esm/Components/Toggle/TableToggle.js +5 -2
  139. package/dist/esm/Components/UserDetails/AddUserModal.js +2 -1
  140. package/dist/esm/Components/UserDetails/ChangeRoleModal.js +2 -1
  141. package/dist/esm/Components/UserDetails/UserDetails.js +3 -1
  142. package/dist/esm/Theme/chakra/Card.styles.js +4 -1
  143. package/dist/esm/Theme/chakra/Menu.styles.js +3 -0
  144. package/dist/esm/Theme/chakra/Popover.styles.js +2 -0
  145. package/dist/esm/Theme/chakra/componentStyles.js +10 -6
  146. package/dist/esm/Theme/chakra/motion.js +1 -0
  147. package/dist/esm/Theme/chakra/overlay.styles.js +3 -0
  148. package/dist/esm/Theme/tokens/brands/index.js +16 -0
  149. package/dist/esm/Theme/tokens/brands/radiant/palette.light.js +15 -0
  150. package/dist/esm/Theme/tokens/brands/rosewood/palette.light.js +10 -10
  151. package/dist/esm/Theme/tokens/brands/zinc/palette.dark.js +3 -35
  152. package/dist/esm/Theme/tokens/builders/buildDarkPalette.js +38 -9
  153. package/dist/esm/Theme/tokens/builders/mutedText.js +12 -2
  154. package/dist/esm/Theme/tokens/builders/planeStep.js +14 -0
  155. package/dist/esm/Theme/tokens/builders/planes.js +28 -0
  156. package/dist/esm/Theme/tokens/builders/skeletonShimmer.js +21 -0
  157. package/dist/esm/Theme/tokens/builders/surfaceRaised.js +16 -7
  158. package/dist/esm/Theme/tokens/builders/surfaceRungs.js +3 -1
  159. package/dist/esm/Theme/tokens/primitives/index.js +1 -1
  160. package/dist/esm/Theme/tokens/primitives/motion.js +1 -0
  161. package/dist/esm/Theme/tokens/primitives/shadows.js +54 -5
  162. package/dist/esm/Theme/tokens/primitives/typography.js +1 -1
  163. package/dist/esm/index.js +1 -0
  164. package/dist/index.d.ts +1 -0
  165. package/dist/index.js +9 -5
  166. package/package.json +1 -1
@@ -33,19 +33,6 @@ const secondary = {
33
33
  900: "#fafafa",
34
34
  opacity: buildPrimaryOpacity(SECONDARY_500),
35
35
  };
36
- // background[50] = the elevated surface (#0e0e11), resolved through a token, not a literal.
37
- const background = {
38
- 50: "#0e0e11",
39
- 100: "#131316",
40
- 200: "#18181b",
41
- 300: "#212124",
42
- 400: "#27272a",
43
- 500: "#3f3f46",
44
- 600: "#52525b",
45
- 700: "#71717a",
46
- 800: "#a1a1aa",
47
- 900: "#d4d4d8",
48
- };
49
36
  const text = {
50
37
  50: "#71717a",
51
38
  100: "#8a8a93",
@@ -71,10 +58,7 @@ const header = {
71
58
  900: "#ffffff",
72
59
  };
73
60
  // NOTE: gray[400] is the one value here NOT ported verbatim — pinned to clear the 3:1 non-text bar (shadcn's own measures 2.81).
74
- const gray = {
75
- 50: "#18181b",
76
- 100: "#27272a",
77
- 200: "#3f3f46",
61
+ const grayInk = {
78
62
  300: "#52525b",
79
63
  400: "#7a7a83",
80
64
  500: "#a1a1aa",
@@ -132,20 +116,6 @@ const disabled = {
132
116
  800: "#a1a1aa",
133
117
  900: "#d4d4d8",
134
118
  };
135
- const table = {
136
- hover: {
137
- 50: "#0e0e11",
138
- 100: "#131316",
139
- 200: "#18181b",
140
- 300: "#1f1f22",
141
- 400: "#27272a",
142
- 500: "#2f2f33",
143
- 600: "#3f3f46",
144
- 700: "#52525b",
145
- 800: "#71717a",
146
- 900: "#a1a1aa",
147
- },
148
- };
149
119
  const buildPalette = () => {
150
120
  const derived = buildDarkPalette(light);
151
121
  return {
@@ -154,16 +124,14 @@ const buildPalette = () => {
154
124
  primary,
155
125
  secondary,
156
126
  tertiary: { ...rotateScaleHue(secondary), opacity: secondary.opacity },
157
- // NOTE: backgroundColor/sidebar fall through to `...derived` — mobile's literals collapse distinct elevation steps, breaking darkSurfaces.test.ts.
158
- background,
127
+ // NOTE: the planes (backgroundColor, background, table, gray fills) stay derived — they rise with the card.
159
128
  text,
160
129
  header,
161
- gray,
130
+ gray: { ...derived.gray, ...grayInk },
162
131
  border,
163
132
  boxborder,
164
133
  placeholder,
165
134
  disabled,
166
- table,
167
135
  accentText: pickAccentText(primary, derived.backgroundColor.main),
168
136
  onPrimary: onFilled(PRIMARY_500, derived.white, derived.black),
169
137
  boxShadow: {
@@ -5,8 +5,9 @@ import { withSidebarTokens } from "./sidebarAccent.js";
5
5
  import { buildMutedText } from "./mutedText.js";
6
6
  import { buildSemanticText, buildOnSemantic } from "./semanticText.js";
7
7
  import { buildFocusRing } from "./focusRing.js";
8
- import { buildSurfaceRaised } from "./surfaceRaised.js";
8
+ import { buildSurfaceRaised, filledMarks } from "./surfaceRaised.js";
9
9
  import { buildStar } from "./star.js";
10
+ import { CARD_LIFT, lift } from "./planes.js";
10
11
  // Structural ramps are rebuilt at explicit targets (not reversed — light ramps bottom near 35%);
11
12
  // utility hues are reversed so index roles survive; brand/semantic ramps shift one step lighter.
12
13
  const SCALE_KEYS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
@@ -142,23 +143,49 @@ const NAMED_SURFACE_L = {
142
143
  accent: 17,
143
144
  muted: 18,
144
145
  };
145
- // NOTE: surfaces are hue-neutral in dark (a tint wash reads as a different product per brand); accent lives in primary/semantic/text.
146
- const SURFACE_SAT = 0;
146
+ const SURFACE_SAT = { lifted: 14, flat: 0 };
147
147
  const TEXT_SAT = 12;
148
148
  const PLACEHOLDER_SAT = 10;
149
149
  const BORDER_SAT = 12;
150
150
  const DISABLED_SAT = 8;
151
151
  const GRAY_SAT = 0;
152
- export function buildDarkPalette(light) {
152
+ // Fill rungs drawn ON a card keep their step above it, so they rise with the card; ink and chrome rungs stay.
153
+ const BACKGROUND_FILLS = [100, 200, 300, 400, 500];
154
+ // NOTE: table.hover[500] gates every ink (it is a named surface), so it climbs one rung per step, not the card's full rise.
155
+ const TABLE_HOVER_ABOVE_CARD = {
156
+ 50: 1, 100: 3, 200: 5, 300: 6, 400: 6.5, 500: 7,
157
+ };
158
+ const GRAY_FILLS = [50, 100, 200];
159
+ const raise = (targets, rungs, by) => ({
160
+ ...targets,
161
+ ...Object.fromEntries(rungs.map((k) => [k, targets[k] + by])),
162
+ });
163
+ const cardPlane = (canvas, white, planes) => {
164
+ if (planes === "flat")
165
+ return { card: canvas, rise: 0, tableHover: TABLE_HOVER_TARGETS };
166
+ const card = lift(white, canvas, CARD_LIFT);
167
+ const cardL = hexToHsl(card).l;
168
+ const tableHover = {
169
+ ...TABLE_HOVER_TARGETS,
170
+ ...Object.fromEntries(Object.entries(TABLE_HOVER_ABOVE_CARD).map(([k, step]) => [k, cardL + step])),
171
+ };
172
+ return { card, rise: cardL - hexToHsl(canvas).l, tableHover };
173
+ };
174
+ export function buildDarkPalette(light, { planes = "lifted" } = {}) {
153
175
  const hueSource = light.primary[500];
154
176
  const { h } = hexToHsl(hueSource);
177
+ const surfaceSat = SURFACE_SAT[planes];
155
178
  const namedSurfaces = Object.fromEntries(Object.entries(NAMED_SURFACE_L).map(([key, l]) => [
156
179
  key,
157
- hslToHex({ h, s: SURFACE_SAT, l }),
180
+ hslToHex({ h, s: surfaceSat, l }),
158
181
  ]));
159
182
  const white = light.white;
183
+ const { card, rise, tableHover } = cardPlane(namedSurfaces.main, white, planes);
160
184
  const primary = liftBrand(light.primary, white);
161
- const background = fromTargets(hueSource, SURFACE_TARGETS, SURFACE_SAT);
185
+ const background = {
186
+ ...fromTargets(hueSource, raise(SURFACE_TARGETS, BACKGROUND_FILLS, rise), surfaceSat),
187
+ 50: card,
188
+ };
162
189
  const semantic = {
163
190
  success: liftAccent(light.semantic.success, white),
164
191
  error: liftAccent(light.semantic.error, white),
@@ -178,7 +205,7 @@ export function buildDarkPalette(light) {
178
205
  transparent: light.transparent,
179
206
  black: light.black,
180
207
  white: light.white,
181
- gray: fromTargets(hueSource, GRAY_TARGETS, GRAY_SAT),
208
+ gray: fromTargets(hueSource, raise(GRAY_TARGETS, GRAY_FILLS, rise), GRAY_SAT),
182
209
  red: reverseScale(light.red),
183
210
  orange: reverseScale(light.orange),
184
211
  yellow: reverseScale(light.yellow),
@@ -195,7 +222,9 @@ export function buildDarkPalette(light) {
195
222
  placeholder: fromTargets(hueSource, PLACEHOLDER_TARGETS, PLACEHOLDER_SAT),
196
223
  border: dividerRamp,
197
224
  boxborder: dividerRamp,
198
- table: { hover: fromTargets(hueSource, TABLE_HOVER_TARGETS, SURFACE_SAT) },
225
+ table: {
226
+ hover: fromTargets(hueSource, tableHover, surfaceSat),
227
+ },
199
228
  disabled: fromTargets(hueSource, DISABLED_TARGETS, DISABLED_SAT),
200
229
  accentText: pickAccentText(primary, namedSurfaces.main),
201
230
  textMuted: buildMutedText(fromTargets(hueSource, TEXT_TARGETS, TEXT_SAT), namedSurfaces.main),
@@ -203,7 +232,7 @@ export function buildDarkPalette(light) {
203
232
  onPrimary: onFilled(primary[500], light.white, light.black),
204
233
  onSemantic: buildOnSemantic(semantic, light.white, light.black),
205
234
  focusRing: buildFocusRing({ primary, background, backgroundColor: namedSurfaces }),
206
- surfaceRaised: buildSurfaceRaised({ backgroundColor: namedSurfaces, background, white }),
235
+ surfaceRaised: buildSurfaceRaised({ backgroundColor: namedSurfaces, background, white }, filledMarks({ primary, semantic })),
207
236
  star: buildStar(namedSurfaces.main),
208
237
  sidebar: withSidebarTokens(light),
209
238
  boxShadow: {
@@ -1,5 +1,15 @@
1
+ import { contrastRatio, hexToHsl, relativeLuminance, withLightness } from "./color.js";
1
2
  import { liftToContrast } from "./outlineRung.js";
2
3
  /** WCAG 1.4.3 — muted is still body text. */
3
4
  export const AA_NORMAL_TEXT = 4.5;
4
- /** Seeded from the ramp's muted rung so brand tint survives, then lifted until it clears AA. */
5
- export const buildMutedText = (text, canvas) => liftToContrast(text[400], canvas, AA_NORMAL_TEXT);
5
+ export const MUTED_TEXT_CEILING = 8;
6
+ const settleUnder = (hex, canvas, ceiling) => {
7
+ const { s, l } = hexToHsl(hex);
8
+ const toward = relativeLuminance(canvas) < 0.5 ? -1 : 1;
9
+ let settled = hex;
10
+ for (let next = l; contrastRatio(settled, canvas) > ceiling; next += toward) {
11
+ settled = withLightness(hex, next, s);
12
+ }
13
+ return settled;
14
+ };
15
+ export const buildMutedText = (text, canvas) => liftToContrast(settleUnder(text[400], canvas, MUTED_TEXT_CEILING), canvas, AA_NORMAL_TEXT);
@@ -0,0 +1,14 @@
1
+ import { DEFAULT_BLACK, isDarkCanvas } from "./accentText.js";
2
+ import { contrastRatio } from "./color.js";
3
+ import { CHROME_RULE, MIN_PERCEPTIBLE_STEP, liftToContrast, tintStep } from "./outlineRung.js";
4
+ import { lift } from "./planes.js";
5
+ const holds = (fill, plane, target) => !isDarkCanvas(plane) || contrastRatio(fill, plane) >= target;
6
+ export const bandOn = (fill, plane) => holds(fill, plane, MIN_PERCEPTIBLE_STEP) ? fill : tintStep(fill, plane, MIN_PERCEPTIBLE_STEP);
7
+ export const recessOn = (fill, plane) => holds(fill, plane, MIN_PERCEPTIBLE_STEP)
8
+ ? fill
9
+ : lift(DEFAULT_BLACK, plane, MIN_PERCEPTIBLE_STEP);
10
+ export const cardRule = (colors) => {
11
+ const rule = colors.boxborder[200];
12
+ const card = colors.background[50];
13
+ return holds(rule, card, CHROME_RULE) ? rule : liftToContrast(rule, card, CHROME_RULE);
14
+ };
@@ -0,0 +1,28 @@
1
+ import { contrastRatio, mix } from "./color.js";
2
+ import { AA_NON_TEXT } from "./outlineRung.js";
3
+ export const CARD_LIFT = 1.16;
4
+ export const RAISED_LIFT = 1.15;
5
+ const STEP = 0.005;
6
+ const MAX_WEIGHT = 0.4;
7
+ export function lift(ink, base, target) {
8
+ for (let t = STEP * 4; t < MAX_WEIGHT; t += STEP) {
9
+ const next = mix(base, ink, t);
10
+ if (contrastRatio(next, base) >= target)
11
+ return next;
12
+ }
13
+ return mix(base, ink, MAX_WEIGHT);
14
+ }
15
+ const clearsMarks = (surface, marks) => marks.every((mark) => contrastRatio(mark, surface) >= AA_NON_TEXT);
16
+ // NOTE: stops one step early rather than drop a filled mark under 3:1 on the lifted plane.
17
+ export function liftUnder(ink, base, target, marks) {
18
+ let settled = base;
19
+ for (let t = STEP * 4; t < MAX_WEIGHT; t += STEP) {
20
+ const next = mix(base, ink, t);
21
+ if (!clearsMarks(next, marks))
22
+ return settled;
23
+ if (contrastRatio(next, base) >= target)
24
+ return next;
25
+ settled = next;
26
+ }
27
+ return settled;
28
+ }
@@ -0,0 +1,21 @@
1
+ import { contrastRatio, hexToHsl, relativeLuminance, withLightness } from "./color.js";
2
+ /** Same pulse depth as the mobile library's `SKELETON_SHIMMER_CONTRAST`. */
3
+ export const SKELETON_SHIMMER_CONTRAST = 1.35;
4
+ const settleAway = (seed, base, target) => {
5
+ const { s } = hexToHsl(seed);
6
+ let near = hexToHsl(base).l;
7
+ let far = relativeLuminance(base) < 0.5 ? 100 : 0;
8
+ for (let i = 0; i < 20; i += 1) {
9
+ const mid = (near + far) / 2;
10
+ if (contrastRatio(withLightness(seed, mid, s), base) < target)
11
+ near = mid;
12
+ else
13
+ far = mid;
14
+ }
15
+ return withLightness(seed, far, s);
16
+ };
17
+ /** The two colours a Skeleton pulses between: `gray[100]`, and `gray[300]`'s tint settled to the amplitude. */
18
+ export const skeletonShimmer = (palette) => ({
19
+ start: palette.gray[100],
20
+ end: settleAway(palette.gray[300], palette.gray[100], SKELETON_SHIMMER_CONTRAST),
21
+ });
@@ -1,15 +1,24 @@
1
1
  import { contrastRatio, mix, relativeLuminance } from "./color.js";
2
2
  import { liftToContrast } from "./outlineRung.js";
3
+ import { RAISED_LIFT, liftUnder } from "./planes.js";
4
+ import { cardRule } from "./planeStep.js";
5
+ import { SEMANTIC_TONES } from "./semanticText.js";
3
6
  export const RAISED_OVERLAY = 0.07;
4
- // Never below the card, and at least one white-overlay step above the canvas.
5
- export const buildSurfaceRaised = (source) => {
6
- const overlay = mix(source.backgroundColor.main, source.white, RAISED_OVERLAY);
7
+ /** The filled fills a raised plane must keep at 3:1, or a button on a menu stops reading. */
8
+ export const filledMarks = (colors) => [
9
+ colors.primary[500],
10
+ ...SEMANTIC_TONES.map((tone) => colors.semantic[tone][500]),
11
+ ];
12
+ // Never below the card: the lighter of one white-overlay step off the canvas and a RAISED_LIFT step off the card.
13
+ export const buildSurfaceRaised = (source, marks = []) => {
7
14
  const card = source.background[50];
8
- return relativeLuminance(overlay) > relativeLuminance(card) ? overlay : card;
15
+ const overlay = mix(source.backgroundColor.main, source.white, RAISED_OVERLAY);
16
+ const stepped = liftUnder(source.white, card, RAISED_LIFT, marks);
17
+ return [overlay, stepped].reduce((top, c) => (relativeLuminance(c) > relativeLuminance(top) ? c : top), card);
9
18
  };
10
19
  export const withSurfaceRaised = (palette) => ({
11
20
  ...palette,
12
- surfaceRaised: buildSurfaceRaised(palette),
21
+ surfaceRaised: buildSurfaceRaised(palette, filledMarks(palette)),
13
22
  });
14
- // A divider inside an overlay, at the weight `boxborder[200]` has on a card.
15
- export const raisedRule = (colors) => liftToContrast(colors.boxborder[200], colors.surfaceRaised, contrastRatio(colors.boxborder[200], colors.background[50]));
23
+ // A divider inside an overlay, at the weight a rule has inside a card.
24
+ export const raisedRule = (colors) => liftToContrast(colors.boxborder[200], colors.surfaceRaised, contrastRatio(cardRule(colors), colors.background[50]));
@@ -2,6 +2,7 @@ import { contrastRatio } from "./color.js";
2
2
  import { liftToContrast, settleAcross, ruleInk, AA_NON_TEXT, CHROME_BORDER, CHROME_RULE } from "./outlineRung.js";
3
3
  import { AA_NORMAL_TEXT, pickAccentText } from "./accentText.js";
4
4
  import { SEMANTIC_TONES } from "./semanticText.js";
5
+ import { listRowBackgrounds } from "./rowStates.js";
5
6
  // NOTE: hint held to the non-text floor, not body-text — at 4.5 an empty field reads as typed-into. See CHROME-CONSISTENCY.md.
6
7
  export const PLACEHOLDER_TEXT = AA_NON_TEXT;
7
8
  export const namedSurfaces = (palette) => [
@@ -15,6 +16,7 @@ export const hardestSurface = (ink, surfaces) => surfaces.reduce((worst, s) => c
15
16
  // Runs last: `table.hover` is one of the surfaces, and it settles in its own rung.
16
17
  export function withSurfaceRungs(palette) {
17
18
  const surfaces = namedSurfaces(palette);
19
+ const accentSurfaces = [...surfaces, ...Object.values(listRowBackgrounds(palette))];
18
20
  const lift = (ink, target) => liftToContrast(ink, hardestSurface(ink, surfaces), target);
19
21
  const settle = (ink, target) => settleAcross(ink, surfaces, target);
20
22
  const rule = (ink) => ruleInk(ink, [palette.backgroundColor.main, palette.background[50]], CHROME_RULE);
@@ -25,7 +27,7 @@ export function withSurfaceRungs(palette) {
25
27
  return {
26
28
  ...palette,
27
29
  textMuted: lift(palette.textMuted, AA_NORMAL_TEXT),
28
- accentText: pickAccentText(palette.primary, hardestSurface(palette.accentText, surfaces)),
30
+ accentText: pickAccentText(palette.primary, hardestSurface(palette.accentText, accentSurfaces)),
29
31
  semanticText,
30
32
  text: { ...palette.text, 500: lift(palette.text[500], AA_NORMAL_TEXT) },
31
33
  header: { ...palette.header, 500: lift(palette.header[500], AA_NORMAL_TEXT) },
@@ -3,7 +3,7 @@ export { default as sizes } from "./sizes.js";
3
3
  export { default as radii, RADIUS_ROLE } from "./radii.js";
4
4
  export * from "./borderWidths.js";
5
5
  export * from "./states.js";
6
- export { default as shadows, shadowsDark, shadowsFor } from "./shadows.js";
6
+ export { default as shadows, shadowsDark, shadowsFor, shadowCss, ELEVATION_LAYERS, SHADOW_INK } from "./shadows.js";
7
7
  export { default as zIndices } from "./zIndices.js";
8
8
  export { default as breakpoints } from "./breakpoints.js";
9
9
  export { default as lineHeights } from "./lineHeights.js";
@@ -11,6 +11,7 @@ export const MOTION_EASE_OUT = cubicBezierCss(MOTION_BEZIER.out);
11
11
  export const MOTION_EASE_IN = cubicBezierCss(MOTION_BEZIER.in);
12
12
  /** Periods for loops that are feedback, not transitions: skeleton pulse, spinner turn, progress sweep. */
13
13
  export const MOTION_LOOP_MS = { pulse: 700, spin: 800, sweep: 1200 };
14
+ export const MOTION_PRESS_SCALE = 0.98;
14
15
  /** A `transition` value for named properties only — `all` also animates layout and colour flips. */
15
16
  export const transitionFor = (properties, speed = "fast", curve = "standard") => {
16
17
  if (properties.includes("all"))
@@ -1,17 +1,66 @@
1
+ const layer = (x, y, blur, spread, alphaHex) => ({
2
+ x,
3
+ y,
4
+ blur,
5
+ spread,
6
+ alphaHex,
7
+ });
8
+ export const SHADOW_INK = { light: "#141828", dark: "#000000" };
9
+ /** Pebble elevation stacks (mobile `pebble/elevation.ts`), per mode and role. */
10
+ export const ELEVATION_LAYERS = {
11
+ light: {
12
+ cardPress: [layer(0, 1, 2, 0, "0d"), layer(0, 2, 6, -2, "0d")],
13
+ card: [layer(0, 1, 2, 0, "0a"), layer(0, 3, 10, -2, "0d"), layer(0, 14, 32, -14, "1f")],
14
+ float: [layer(0, 2, 6, 0, "0f"), layer(0, 16, 40, -10, "38")],
15
+ dialog: [layer(0, 4, 12, 0, "0f"), layer(0, 28, 64, -16, "4d")],
16
+ sheet: [layer(0, -2, 8, 0, "0a"), layer(0, -18, 48, -14, "33")],
17
+ },
18
+ dark: {
19
+ cardPress: [layer(0, 1, 1, 0, "3d")],
20
+ card: [layer(0, 1, 2, 0, "47")],
21
+ float: [layer(0, 2, 8, 0, "52"), layer(0, 18, 44, -10, "9e")],
22
+ dialog: [layer(0, 4, 14, 0, "59"), layer(0, 28, 64, -16, "b3")],
23
+ sheet: [layer(0, -2, 10, 0, "4d"), layer(0, -18, 48, -14, "99")],
24
+ },
25
+ };
26
+ const length = (n) => (n === 0 ? "0" : `${n}px`);
27
+ const rgbChannels = (hex) => [1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16)).join(", ");
28
+ const alphaOf = (alphaHex) => Math.round((parseInt(alphaHex, 16) / 255) * 100) / 100;
29
+ export const shadowCss = (layers, ink) => layers
30
+ .map((l) => `${length(l.x)} ${length(l.y)} ${length(l.blur)} ${length(l.spread)} rgba(${rgbChannels(ink)}, ${alphaOf(l.alphaHex)})`)
31
+ .join(", ");
32
+ const elevationRamp = (mode) => {
33
+ const css = (role) => shadowCss(ELEVATION_LAYERS[mode][role], SHADOW_INK[mode]);
34
+ return {
35
+ sm: css("cardPress"),
36
+ base: css("card"),
37
+ md: css("float"),
38
+ lg: css("dialog"),
39
+ card: css("card"),
40
+ float: css("float"),
41
+ dialog: css("dialog"),
42
+ sheet: css("sheet"),
43
+ };
44
+ };
45
+ const lightElevation = elevationRamp("light");
1
46
  /** Light-mode ramp. A theme should carry `shadowsFor(mode)`, never this one in dark. */
2
47
  const shadows = {
3
48
  xs: "0 0 0 1px rgba(0, 0, 0, 0.05)",
4
- sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
5
- base: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
6
- md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
7
- lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",
49
+ sm: lightElevation.sm,
50
+ base: lightElevation.base,
51
+ md: lightElevation.md,
52
+ lg: lightElevation.lg,
8
53
  xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
9
54
  "2xl": "0 25px 50px -12px rgba(0, 0, 0, 0.25)",
10
55
  outline: "0 0 0 3px rgba(66, 153, 225, 0.6)",
11
56
  inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)",
12
57
  none: "none",
13
58
  darkLg: "0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.5)",
59
+ card: lightElevation.card,
60
+ float: lightElevation.float,
61
+ dialog: lightElevation.dialog,
62
+ sheet: lightElevation.sheet,
14
63
  };
15
- export const shadowsDark = { ...shadows };
64
+ export const shadowsDark = { ...shadows, ...elevationRamp("dark") };
16
65
  export const shadowsFor = (mode) => mode === "dark" ? shadowsDark : shadows;
17
66
  export default shadows;
@@ -2,7 +2,7 @@
2
2
  export const fonts = {
3
3
  body: "Inter Variable, sans-serif",
4
4
  heading: "Inter Variable, sans-serif",
5
- mono: "Inter Variable, sans-serif",
5
+ mono: "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",
6
6
  };
7
7
  export const fontSizes = {
8
8
  "xs-minus": "0.6875rem",
package/dist/esm/index.js CHANGED
@@ -180,6 +180,7 @@ export { TONES, isTone, toneToColorScheme, toneToSemantic, toneScale, toneInk, r
180
180
  export { overlayScrim, SCRIM_OPACITY } from "./Theme/tokens/builders/scrim.js";
181
181
  export { tooltipSurface } from "./Theme/tokens/builders/tooltipSurface.js";
182
182
  export { buildSurfaceRaised, raisedRule, RAISED_OVERLAY } from "./Theme/tokens/builders/surfaceRaised.js";
183
+ export { bandOn, recessOn, cardRule } from "./Theme/tokens/builders/planeStep.js";
183
184
  export { overlayScrimStyles, OVERLAY_BLUR } from "./Theme/chakra/overlay.styles.js";
184
185
  export { usePrefersReducedMotion, reducedMotionSx, REDUCED_MOTION_QUERY, MOTION_KEEP_CLASS, } from "./Theme/chakra/motion.js";
185
186
  export { useFieldIds } from "./Components/Common/useFieldIds.js";
package/dist/index.d.ts CHANGED
@@ -208,6 +208,7 @@ export type { Tone, ToneColorScheme } from "./Theme/tokens/builders/tone";
208
208
  export { overlayScrim, SCRIM_OPACITY } from "./Theme/tokens/builders/scrim";
209
209
  export { tooltipSurface } from "./Theme/tokens/builders/tooltipSurface";
210
210
  export { buildSurfaceRaised, raisedRule, RAISED_OVERLAY } from "./Theme/tokens/builders/surfaceRaised";
211
+ export { bandOn, recessOn, cardRule } from "./Theme/tokens/builders/planeStep";
211
212
  export { overlayScrimStyles, OVERLAY_BLUR } from "./Theme/chakra/overlay.styles";
212
213
  export { usePrefersReducedMotion, reducedMotionSx, REDUCED_MOTION_QUERY, MOTION_KEEP_CLASS, } from "./Theme/chakra/motion";
213
214
  export type { ReducedMotionScope } from "./Theme/chakra/motion";
package/dist/index.js CHANGED
@@ -44,11 +44,11 @@ exports.splitMonthsAndDays = exports.resolvePlanBadge = exports.formatPlanRemain
44
44
  exports.Tag = exports.TableToggle = exports.Table = exports.SegmentedControl = exports.ToggleSwitch = exports.Switch = exports.Skeletons = exports.ScrollbarBox = exports.Slider = exports.SideBar = exports.SelectSearch = exports.SearchSelect = exports.SelectV2 = exports.Select = exports.Search = exports.Reorder = exports.RadioButtonGroup = exports.RadioButton = exports.ProgressBar = exports.ProfilePhotoViewer = exports.ProfileCardFooter = exports.ProfileCardBody = exports.ProfileCardHeader = exports.ProfileCard = exports.ProductDetails = exports.ProductCard = exports.PinInput = exports.PhoneNumberInput = exports.PaymentCard = exports.NumberInput = exports.MultiSelect = exports.NoteTextArea = exports.Notification = exports.NavigationBar = exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = exports.Loading = exports.KanbanActions = exports.KanbanBoard = exports.InputSwitch = exports.InputTextArea = exports.HeaderActions = exports.Header = exports.OrganizationDetails = exports.SignInActivityTable = exports.CustomModulesTable = exports.RolesPermission = exports.UserDetails = void 0;
45
45
  exports.setRef = exports.mergeRefs = exports.resolveStatusTone = exports.resolveAvatarFill = exports.meetsBodyText = exports.avatarFillFor = exports.AVATAR_SEEDS = exports.FOCUS_RING_WIDTH = exports.FOCUS_HALO_WIDTH = exports.FOCUS_VISIBLE_OVER_STATE = exports.focusVisibleStyles = exports.focusVisibleRing = exports.focusRingShadow = exports.withFocusRing = exports.settleBetween = exports.buildFocusRing = exports.listRowBackgrounds = exports.withOutlineRung = exports.liftToContrast = exports.AA_NON_TEXT = exports.buildDarkPalette = exports.themeNames = exports.palettes = exports.darkPalettes = exports.lightPalettes = exports.brandThemes = exports.AppearanceSettings = exports.useFontSizeSync = exports.resolveFontSize = exports.isFontSize = exports.FONT_SIZE_OPTIONS = exports.DEFAULT_FONT_SIZE = exports.ThemeSwitcher = exports.useThemeMode = exports.PixelizeThemeProvider = exports.createAccountHandoff = exports.resolveReturnUrl = exports.isAllowedReturnUrl = exports.debounce = exports.ThemesList = exports.useCustomTheme = exports.useIsTruncated = exports.useSidebarPrefs = exports.VerifyEmailOtp = exports.useToaster = exports.OverflowToolTip = exports.ToolTip = exports.Toaster = exports.Timeline = exports.TextInput = void 0;
46
46
  exports.appInitials = exports.describeDayStates = exports.resolveDayStateVisual = exports.isDayStateKey = exports.CALENDAR_DAY_CLASS = exports.DAY_STATE_KEYS = exports.contrastRatio = exports.relativeLuminance = exports.mix = exports.withLightness = exports.hslToHex = exports.hexToHsl = exports.hslToRgb = exports.rgbToHsl = exports.rgbToHex = exports.compositeOver = exports.hexToRgba = exports.hexToRgb = exports.optionRowDescriptionInk = exports.optionRowWeight = exports.optionRowInk = exports.resolveFilledSurface = exports.labelOnFill = exports.darkerFillRung = exports.solidFillRung = exports.DARK_CANVAS_LUMINANCE = exports.AA_NORMAL_TEXT = exports.pickAccentText = exports.accentTextOnCanvas = exports.onGradient = exports.onFilled = exports.isDarkCanvas = exports.STATUS_INK = exports.ACCENT_GRADIENT = exports.chipBorder = exports.chipFill = exports.inkSafeGradient = exports.statusGradient = exports.useChartTheme = exports.labelOnSeries = exports.getDefaultSeriesColors = exports.getCategoricalSeriesColors = exports.chartMode = exports.chartInk = exports.chartAxisLabelColor = exports.CATEGORICAL_SERIES = exports.useDebouncedValue = exports.useDebouncedCallback = exports.toWords = exports.rafThrottle = void 0;
47
- exports.REDUCED_MOTION_QUERY = exports.reducedMotionSx = exports.usePrefersReducedMotion = exports.OVERLAY_BLUR = exports.overlayScrimStyles = exports.RAISED_OVERLAY = exports.raisedRule = exports.buildSurfaceRaised = exports.tooltipSurface = exports.SCRIM_OPACITY = exports.overlayScrim = exports.resolveSoftTone = exports.toneInk = exports.toneScale = exports.toneToSemantic = exports.toneToColorScheme = exports.isTone = exports.TONES = exports.shadowsFor = exports.TEXT_STYLES = exports.NUMERIC_TEXT = exports.DISABLED_OPACITY = exports.BORDER_WIDTHS = exports.RADIUS_ROLE = exports.motionTransition = exports.transitionFor = exports.MOTION_LOOP_MS = exports.MOTION_BEZIER = exports.MOTION_EASE_IN = exports.MOTION_EASE_OUT = exports.MOTION_EASE = exports.MOTION_MS = exports.isControlSize = exports.DEFAULT_CONTROL_SIZE = exports.CONTROL_SIZE_NAMES = exports.CONTROL_SIZES = exports.inkSafeGradientToken = exports.gradientCss = exports.resolveGradient = exports.fieldSurfaces = exports.placeholderInkOn = exports.placeholderInk = exports.SCROLLBAR_WIDTH = exports.globalScrollbarStyles = exports.scrollbarStyles = exports.useAppSwitcherShortcut = exports.buildSuiteApps = exports.formatShortcut = exports.matchesShortcut = exports.filterApps = void 0;
48
- exports.installPreloadErrorReload = exports.lazyWithRetry = exports.useAnchoredPanelHeight = exports.formatRelativeTime = exports.formatCount = exports.groupConsecutive = exports.sectionizeByDay = exports.NotificationItem = exports.NotificationList = exports.NotificationPanel = exports.NotificationBell = exports.ConfirmDialog = exports.TabPanel = exports.TabPanels = exports.Tab = exports.TabList = exports.Tabs = exports.Accordian = exports.AudioRecorder = exports.CalendarGrid = exports.SectionRail = exports.BulkSelectionBar = exports.SaveBar = exports.FeedbackForm = exports.PersonChip = exports.initialsFor = exports.avatarScaleKeyFor = exports.resolveAvatarColorway = exports.AvatarGroup = exports.Avatar = exports.SettingsSection = exports.SettingRow = exports.FilterBar = exports.DescriptionList = exports.Spinner = exports.Backdrop = exports.QueryStateBoundary = exports.ErrorState = exports.FormDrawer = exports.CircularProgress = exports.StatusTag = exports.StatCard = exports.PageHeader = exports.fieldMessageStyles = exports.fieldLabelStyles = exports.controlSizeStyles = exports.fieldControlStyles = exports.FieldMessage = exports.useFieldIds = exports.MOTION_KEEP_CLASS = void 0;
49
- exports.VariantSelector = exports.OptionChip = exports.WishlistToggle = exports.ProductBadges = exports.StockStatus = exports.PriceBlock = exports.Rating = exports.SEEK_STEP_SECONDS = exports.PLAYBACK_SPEEDS = exports.ZOOM_STEP = exports.MAX_ZOOM = exports.MIN_ZOOM = exports.resolveMediaUrl = exports.fileKind = exports.countMedia = exports.planPreview = exports.buildFileItems = exports.buildMediaItems = exports.MediaStatusPanel = exports.MediaScrubber = exports.defaultMediaAudioPlayerLabels = exports.MediaAudioPlayer = exports.defaultMediaViewerLabels = exports.defaultMediaDocumentStageLabels = exports.MediaDocumentStage = exports.defaultMediaVideoPlayerLabels = exports.MediaVideoPlayer = exports.defaultMediaImageViewerLabels = exports.MediaImageViewer = exports.useFileViewer = exports.MediaViewer = exports.RangeSlider = exports.getApiErrorStatus = exports.getApiErrorMessage = exports.defaultValidationMessages = exports.validateYoutubeUrl = exports.validateVideoFile = exports.validateVideoFileType = exports.validateFile = exports.validateFileSize = exports.validateFileType = exports.validatePositiveNumber = exports.validateRequired = exports.validatePassword = exports.validateEmail = exports.EMAIL_REGEX = exports.createEnumLabelResolver = exports.humanize = exports.clearChunkReloadGuard = exports.isChunkLoadError = void 0;
50
- exports.firstInvalidStep = exports.wizardTransition = exports.Wizard = exports.WizardDialog = exports.flattenScreens = exports.searchLauncherSections = exports.searchLauncher = exports.NewTabLink = exports.PinToggle = exports.NavLauncher = exports.LauncherTrigger = exports.KbdShortcut = exports.Kbd = exports.QuickAddSheet = exports.ProductCardSkeleton = exports.ProductCardGrid = exports.unitPrice = exports.discountAmount = exports.discountPercent = exports.formatPrice = exports.firstAvailableSelection = exports.priceRange = exports.remainingStock = exports.isOptionAvailable = exports.findVariant = exports.selectionComplete = exports.stockState = exports.LOW_STOCK_THRESHOLD = exports.defaultMediaLightboxLabels = exports.defaultMediaGalleryLabels = exports.MediaLightbox = exports.MediaGallery = exports.PaymentOptionGroup = exports.PaymentOption = exports.AddressCardGroup = exports.AddressCard = exports.DetailSections = exports.ReviewList = exports.ReviewSummary = exports.SpecTable = exports.OffersList = exports.TrustBadges = exports.PincodeChecker = exports.StickyBuyBar = exports.BagBar = exports.OrderStatusTimeline = exports.CouponField = exports.OrderSummary = exports.CartItem = exports.QuantityStepper = void 0;
51
- exports.TagInput = exports.TimePicker = exports.DEFAULT_DATE_FALLBACK = exports.formatDateRange = exports.formatDateTime = exports.formatDate = exports.SkipLink = exports.VisuallyHidden = exports.FormField = exports.IconButton = exports.ChoiceCardGroup = exports.ChoiceCard = exports.defaultPaginationLabels = exports.Pagination = void 0;
47
+ exports.OVERLAY_BLUR = exports.overlayScrimStyles = exports.cardRule = exports.recessOn = exports.bandOn = exports.RAISED_OVERLAY = exports.raisedRule = exports.buildSurfaceRaised = exports.tooltipSurface = exports.SCRIM_OPACITY = exports.overlayScrim = exports.resolveSoftTone = exports.toneInk = exports.toneScale = exports.toneToSemantic = exports.toneToColorScheme = exports.isTone = exports.TONES = exports.shadowsFor = exports.TEXT_STYLES = exports.NUMERIC_TEXT = exports.DISABLED_OPACITY = exports.BORDER_WIDTHS = exports.RADIUS_ROLE = exports.motionTransition = exports.transitionFor = exports.MOTION_LOOP_MS = exports.MOTION_BEZIER = exports.MOTION_EASE_IN = exports.MOTION_EASE_OUT = exports.MOTION_EASE = exports.MOTION_MS = exports.isControlSize = exports.DEFAULT_CONTROL_SIZE = exports.CONTROL_SIZE_NAMES = exports.CONTROL_SIZES = exports.inkSafeGradientToken = exports.gradientCss = exports.resolveGradient = exports.fieldSurfaces = exports.placeholderInkOn = exports.placeholderInk = exports.SCROLLBAR_WIDTH = exports.globalScrollbarStyles = exports.scrollbarStyles = exports.useAppSwitcherShortcut = exports.buildSuiteApps = exports.formatShortcut = exports.matchesShortcut = exports.filterApps = void 0;
48
+ exports.formatRelativeTime = exports.formatCount = exports.groupConsecutive = exports.sectionizeByDay = exports.NotificationItem = exports.NotificationList = exports.NotificationPanel = exports.NotificationBell = exports.ConfirmDialog = exports.TabPanel = exports.TabPanels = exports.Tab = exports.TabList = exports.Tabs = exports.Accordian = exports.AudioRecorder = exports.CalendarGrid = exports.SectionRail = exports.BulkSelectionBar = exports.SaveBar = exports.FeedbackForm = exports.PersonChip = exports.initialsFor = exports.avatarScaleKeyFor = exports.resolveAvatarColorway = exports.AvatarGroup = exports.Avatar = exports.SettingsSection = exports.SettingRow = exports.FilterBar = exports.DescriptionList = exports.Spinner = exports.Backdrop = exports.QueryStateBoundary = exports.ErrorState = exports.FormDrawer = exports.CircularProgress = exports.StatusTag = exports.StatCard = exports.PageHeader = exports.fieldMessageStyles = exports.fieldLabelStyles = exports.controlSizeStyles = exports.fieldControlStyles = exports.FieldMessage = exports.useFieldIds = exports.MOTION_KEEP_CLASS = exports.REDUCED_MOTION_QUERY = exports.reducedMotionSx = exports.usePrefersReducedMotion = void 0;
49
+ exports.ProductBadges = exports.StockStatus = exports.PriceBlock = exports.Rating = exports.SEEK_STEP_SECONDS = exports.PLAYBACK_SPEEDS = exports.ZOOM_STEP = exports.MAX_ZOOM = exports.MIN_ZOOM = exports.resolveMediaUrl = exports.fileKind = exports.countMedia = exports.planPreview = exports.buildFileItems = exports.buildMediaItems = exports.MediaStatusPanel = exports.MediaScrubber = exports.defaultMediaAudioPlayerLabels = exports.MediaAudioPlayer = exports.defaultMediaViewerLabels = exports.defaultMediaDocumentStageLabels = exports.MediaDocumentStage = exports.defaultMediaVideoPlayerLabels = exports.MediaVideoPlayer = exports.defaultMediaImageViewerLabels = exports.MediaImageViewer = exports.useFileViewer = exports.MediaViewer = exports.RangeSlider = exports.getApiErrorStatus = exports.getApiErrorMessage = exports.defaultValidationMessages = exports.validateYoutubeUrl = exports.validateVideoFile = exports.validateVideoFileType = exports.validateFile = exports.validateFileSize = exports.validateFileType = exports.validatePositiveNumber = exports.validateRequired = exports.validatePassword = exports.validateEmail = exports.EMAIL_REGEX = exports.createEnumLabelResolver = exports.humanize = exports.clearChunkReloadGuard = exports.isChunkLoadError = exports.installPreloadErrorReload = exports.lazyWithRetry = exports.useAnchoredPanelHeight = void 0;
50
+ exports.WizardDialog = exports.flattenScreens = exports.searchLauncherSections = exports.searchLauncher = exports.NewTabLink = exports.PinToggle = exports.NavLauncher = exports.LauncherTrigger = exports.KbdShortcut = exports.Kbd = exports.QuickAddSheet = exports.ProductCardSkeleton = exports.ProductCardGrid = exports.unitPrice = exports.discountAmount = exports.discountPercent = exports.formatPrice = exports.firstAvailableSelection = exports.priceRange = exports.remainingStock = exports.isOptionAvailable = exports.findVariant = exports.selectionComplete = exports.stockState = exports.LOW_STOCK_THRESHOLD = exports.defaultMediaLightboxLabels = exports.defaultMediaGalleryLabels = exports.MediaLightbox = exports.MediaGallery = exports.PaymentOptionGroup = exports.PaymentOption = exports.AddressCardGroup = exports.AddressCard = exports.DetailSections = exports.ReviewList = exports.ReviewSummary = exports.SpecTable = exports.OffersList = exports.TrustBadges = exports.PincodeChecker = exports.StickyBuyBar = exports.BagBar = exports.OrderStatusTimeline = exports.CouponField = exports.OrderSummary = exports.CartItem = exports.QuantityStepper = exports.VariantSelector = exports.OptionChip = exports.WishlistToggle = void 0;
51
+ exports.TagInput = exports.TimePicker = exports.DEFAULT_DATE_FALLBACK = exports.formatDateRange = exports.formatDateTime = exports.formatDate = exports.SkipLink = exports.VisuallyHidden = exports.FormField = exports.IconButton = exports.ChoiceCardGroup = exports.ChoiceCard = exports.defaultPaginationLabels = exports.Pagination = exports.firstInvalidStep = exports.wizardTransition = exports.Wizard = void 0;
52
52
  const Accordion_1 = __importDefault(require("./Components/Accordion/Accordion"));
53
53
  exports.Accordion = Accordion_1.default;
54
54
  const AlertDialog_1 = __importDefault(require("./Components/AlertDialog/AlertDialog"));
@@ -464,6 +464,10 @@ var surfaceRaised_1 = require("./Theme/tokens/builders/surfaceRaised");
464
464
  Object.defineProperty(exports, "buildSurfaceRaised", { enumerable: true, get: function () { return surfaceRaised_1.buildSurfaceRaised; } });
465
465
  Object.defineProperty(exports, "raisedRule", { enumerable: true, get: function () { return surfaceRaised_1.raisedRule; } });
466
466
  Object.defineProperty(exports, "RAISED_OVERLAY", { enumerable: true, get: function () { return surfaceRaised_1.RAISED_OVERLAY; } });
467
+ var planeStep_1 = require("./Theme/tokens/builders/planeStep");
468
+ Object.defineProperty(exports, "bandOn", { enumerable: true, get: function () { return planeStep_1.bandOn; } });
469
+ Object.defineProperty(exports, "recessOn", { enumerable: true, get: function () { return planeStep_1.recessOn; } });
470
+ Object.defineProperty(exports, "cardRule", { enumerable: true, get: function () { return planeStep_1.cardRule; } });
467
471
  var overlay_styles_1 = require("./Theme/chakra/overlay.styles");
468
472
  Object.defineProperty(exports, "overlayScrimStyles", { enumerable: true, get: function () { return overlay_styles_1.overlayScrimStyles; } });
469
473
  Object.defineProperty(exports, "OVERLAY_BLUR", { enumerable: true, get: function () { return overlay_styles_1.OVERLAY_BLUR; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.4.2-beta.62",
3
+ "version": "2.4.2-beta.63",
4
4
  "description": "React component library for Pixelize apps: themeable Chakra-based components, design tokens and light/dark brand theming.",
5
5
  "keywords": [
6
6
  "react",