@box-kite/react 2.2.5 → 2.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/rules/box-kite-rules.md +5 -1
- package/.claude/skills/box-kite/SKILL.md +5 -1
- package/.claude/skills/box-kite/references/components.md +34 -0
- package/.claude/skills/box-kite/references/extending.md +10 -0
- package/.claude/skills/box-kite/references/styling.md +3 -2
- package/.cursor/rules/box-kite.mdc +5 -1
- package/AGENTS.md +5 -1
- package/BOX_AI_CONTEXT.md +147 -7
- package/BOX_KITE_AI_CONTEXT.md +147 -7
- package/box.cjs +1 -1
- package/box.d.ts +5 -0
- package/box.mjs +7 -7
- package/catalog.cjs +1 -1
- package/catalog.mjs +521 -0
- package/client.cjs +1 -1
- package/client.mjs +136 -117
- package/components/calendar.cjs +1 -0
- package/components/calendar.d.ts +77 -0
- package/components/calendar.mjs +483 -0
- package/components/dataGrid/components/dataGridBooleanValue.d.ts +11 -0
- package/components/dataGrid/components/dataGridDateParts.d.ts +40 -0
- package/components/dataGrid/components/dataGridDateValue.d.ts +14 -0
- package/components/dataGrid/contracts/dataGridContract.d.ts +38 -11
- package/components/dataGrid/models/columnModel.d.ts +3 -1
- package/components/dataGrid/models/editModel.d.ts +3 -1
- package/components/dataGrid/models/headerCellModel.d.ts +1 -0
- package/components/dataGrid/models/localeText.d.ts +4 -0
- package/components/dataGrid/useDateParts.d.ts +17 -0
- package/components/dataGrid.cjs +3 -3
- package/components/dataGrid.mjs +824 -690
- package/components/dateField.cjs +1 -0
- package/components/dateField.d.ts +78 -0
- package/components/dateField.mjs +313 -0
- package/components/datePicker.cjs +1 -0
- package/components/datePicker.d.ts +120 -0
- package/components/datePicker.mjs +529 -0
- package/components/dateTime.cjs +1 -0
- package/components/dateTime.d.ts +23 -0
- package/components/dateTime.mjs +34 -0
- package/components/dialog.cjs +1 -1
- package/components/dialog.mjs +87 -75
- package/components/overlay.cjs +1 -1
- package/components/overlay.mjs +1 -1
- package/components/semantics.d.ts +29 -29
- package/components/timeZoneSelect.cjs +1 -0
- package/components/timeZoneSelect.d.ts +52 -0
- package/components/timeZoneSelect.mjs +74 -0
- package/components/toaster.cjs +1 -1
- package/components/toaster.mjs +1 -1
- package/create/src/index.d.ts +1 -0
- package/create/src/options.d.ts +27 -0
- package/create/src/options.test.d.ts +1 -0
- package/create/src/packageManager.d.ts +5 -0
- package/create/src/project.d.ts +25 -0
- package/create/src/project.test.d.ts +1 -0
- package/create/templates/ts/designs/azure.d.ts +5 -0
- package/create/templates/ts/designs/ember.d.ts +5 -0
- package/create/templates/ts/designs/mono.d.ts +5 -0
- package/create/templates/ts/src/App.d.ts +2 -0
- package/create/templates/ts/src/design.d.ts +5 -0
- package/create/templates/ts/src/main.d.ts +0 -0
- package/dataGridDateParts.cjs +1 -0
- package/dataGridDateParts.mjs +223 -0
- package/dataGridList.cjs +1 -1
- package/dataGridList.mjs +335 -372
- package/dataGridListLayout.cjs +1 -0
- package/dataGridListLayout.mjs +49 -0
- package/date-environment.cjs +1 -0
- package/date-environment.mjs +29 -0
- package/date-input.cjs +1 -0
- package/date-input.mjs +346 -0
- package/date-math.cjs +1 -0
- package/date-math.mjs +317 -0
- package/date.cjs +1 -0
- package/date.d.ts +40 -0
- package/date.mjs +4 -0
- package/dates.cjs +1 -0
- package/dates.mjs +689 -0
- package/docs/components.md +6 -1
- package/docs/props.md +19 -19
- package/package.json +124 -27
- package/react/boxComponent.d.ts +1 -1
- package/react/date/dateChange.d.ts +18 -0
- package/react/date/dateEnvironment.d.ts +34 -0
- package/react/theme/theme.d.ts +9 -0
- package/react/theme/themeContext.d.ts +2 -0
- package/react-shared.cjs +1 -1
- package/react-shared.mjs +1 -1
- package/rsc.cjs +1 -1
- package/rsc.d.ts +3 -0
- package/rsc.mjs +1 -1
- package/ssg.cjs +1 -1
- package/ssg.mjs +1 -1
- package/utils/date/calendar.d.ts +44 -0
- package/utils/date/calendarModel.d.ts +46 -0
- package/utils/date/dateTime.d.ts +144 -0
- package/utils/date/fieldModel.d.ts +74 -0
- package/utils/date/format.d.ts +39 -0
- package/utils/date/iso.d.ts +40 -0
- package/utils/date/locale.d.ts +17 -0
- package/utils/date/parse.d.ts +20 -0
- package/utils/date/settings.d.ts +26 -0
- package/utils/date/value.d.ts +43 -0
- package/utils/date/zoneOptions.d.ts +19 -0
- package/utils/date/zones.d.ts +32 -0
package/docs/props.md
CHANGED
|
@@ -13,7 +13,7 @@ A prop that is not here does not exist: reach for `css={{ … }}` for a one-off,
|
|
|
13
13
|
The accent-color CSS property tints the parts of a native control the page does not draw: a checkbox's tick, a radio's dot, a range track, a progress bar. The one way to brand them without `appearance="none"` and a rebuild, and it inherits — set it once on a form.
|
|
14
14
|
|
|
15
15
|
- Writes: `accent-color`
|
|
16
|
-
- Values:
|
|
16
|
+
- Values: 326 named values, anything else the types allow
|
|
17
17
|
- Example: `accentColor="sky-500"` → `accent-color: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
18
18
|
|
|
19
19
|
### `ai`
|
|
@@ -285,15 +285,15 @@ Which box the background is painted inside — and `text`, which clips it to the
|
|
|
285
285
|
The background-color CSS property sets the background color of an element.
|
|
286
286
|
|
|
287
287
|
- Writes: `background-color`
|
|
288
|
-
- Values:
|
|
288
|
+
- Values: 326 named values, anything else the types allow
|
|
289
289
|
- Example: `bgColor="sky-500"` → `background-color: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
290
290
|
|
|
291
291
|
### `bgGradient`
|
|
292
292
|
|
|
293
|
-
A gradient written as a value: the key names the kind and carries its geometry (`linear` a direction or an angle, `radial` a shape, `conic` an angle to start from), `colors` are the stops in order — a palette token, one with an opacity modifier, or a `[colour, position]` pair. `interpolate="oklch"` is what keeps a two-stop gradient out of the grey middle sRGB runs it through. Writes `background-image`, so it and `bgImage` are the same property: use one.
|
|
293
|
+
A gradient written as a value: the key names the kind and carries its geometry (`linear` a direction or an angle, `radial` a shape, `conic` an angle to start from), `colors` are the stops in order — a palette token, one with an opacity modifier, or a `[colour, position]` pair. `interpolate="oklch"` is what keeps a two-stop gradient out of the grey middle sRGB runs it through. Writes `background-image`, so it and `bgImage` are the same property: use one. `'none'` clears it — the only way a variant or a design can take a gradient back off, since `bgGradient` is declared after `bgImage` and wins the property.
|
|
294
294
|
|
|
295
295
|
- Writes: `background-image`
|
|
296
|
-
- Values:
|
|
296
|
+
- Values: `none`, anything else the types allow
|
|
297
297
|
- Example: `bgGradient={{ linear: 'r', colors: ['blue-500', 'pink-500'] }}` → `background-image: linear-gradient(to right,var(--blue-500,oklch(62.3% .214 259.8)),var(--pink-500,oklch(65.6% .241 354.3)))`
|
|
298
298
|
|
|
299
299
|
### `bgImage`
|
|
@@ -333,7 +333,7 @@ Whether a table's cell borders are shared or every cell keeps its own. `collapse
|
|
|
333
333
|
The border-color shorthand CSS property sets the color of an element's border.
|
|
334
334
|
|
|
335
335
|
- Writes: `border-color`
|
|
336
|
-
- Values:
|
|
336
|
+
- Values: 326 named values, anything else the types allow
|
|
337
337
|
- Example: `borderColor="sky-500"` → `border-color: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
338
338
|
|
|
339
339
|
### `borderRadius`
|
|
@@ -541,7 +541,7 @@ The border-width shorthand CSS property sets the width of an element's top and b
|
|
|
541
541
|
The caret-color CSS property sets the colour of the insertion caret in a text field or any editable element.
|
|
542
542
|
|
|
543
543
|
- Writes: `caret-color`
|
|
544
|
-
- Values:
|
|
544
|
+
- Values: 326 named values, anything else the types allow
|
|
545
545
|
- Example: `caretColor="sky-500"` → `caret-color: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
546
546
|
|
|
547
547
|
### `clipPath`
|
|
@@ -557,7 +557,7 @@ The clip-path CSS property creates a clipping region that sets what part of an e
|
|
|
557
557
|
The color CSS property sets the foreground color value of an element's text and text decorations, and sets the currentcolor value.
|
|
558
558
|
|
|
559
559
|
- Writes: `color`
|
|
560
|
-
- Values:
|
|
560
|
+
- Values: 326 named values, anything else the types allow
|
|
561
561
|
- Example: `color="sky-500"` → `color: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
562
562
|
|
|
563
563
|
### `colorScheme`
|
|
@@ -693,7 +693,7 @@ A shadow cast by the element's *shape* rather than its box — the one that foll
|
|
|
693
693
|
What colour `dropShadow` draws in. Shows nothing on its own.
|
|
694
694
|
|
|
695
695
|
- Writes: `--boxDropShadowColor`
|
|
696
|
-
- Values:
|
|
696
|
+
- Values: 326 named values, anything else the types allow
|
|
697
697
|
- Example: `dropShadowColor="sky-500"` → `--boxDropShadowColor: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
698
698
|
|
|
699
699
|
### `fieldSizing`
|
|
@@ -709,7 +709,7 @@ The field-sizing CSS property lets a form control size itself to its content: `f
|
|
|
709
709
|
The fill CSS property defines how SVG text content and the interior canvas of SVG shapes are filled or painted. If present, it overrides the element's fill attribute. Takes a colour token, a paint server the document defines (`fill="url(#sky)"` — a `<LinearGradient>` or a pattern) or a variable somebody else declared (`fill="var(--chart-1)"`).
|
|
710
710
|
|
|
711
711
|
- Writes: `fill`
|
|
712
|
-
- Values:
|
|
712
|
+
- Values: 326 named values, anything else the types allow
|
|
713
713
|
- Example: `fill="sky-500"` → `fill: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
714
714
|
|
|
715
715
|
### `fillOpacity`
|
|
@@ -925,7 +925,7 @@ The same ring, drawn inside the border box: an inner hairline that needs no seco
|
|
|
925
925
|
What colour `insetRing` draws in. `currentColor` otherwise.
|
|
926
926
|
|
|
927
927
|
- Writes: `--boxInsetRingColor`
|
|
928
|
-
- Values:
|
|
928
|
+
- Values: 326 named values, anything else the types allow
|
|
929
929
|
- Example: `insetRingColor="sky-500"` → `--boxInsetRingColor: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
930
930
|
|
|
931
931
|
### `insetShadow`
|
|
@@ -941,7 +941,7 @@ A shadow drawn inside the border box: `xxs`, `xs` or `sm`. Its own layer, so it
|
|
|
941
941
|
What colour `insetShadow` draws in. Shows nothing on its own.
|
|
942
942
|
|
|
943
943
|
- Writes: `--boxInsetShadowColor`
|
|
944
|
-
- Values:
|
|
944
|
+
- Values: 326 named values, anything else the types allow
|
|
945
945
|
- Example: `insetShadowColor="sky-500"` → `--boxInsetShadowColor: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
946
946
|
|
|
947
947
|
### `insetStart`
|
|
@@ -1018,10 +1018,10 @@ The left CSS property participates in specifying the horizontal position of a po
|
|
|
1018
1018
|
|
|
1019
1019
|
### `letterSpacing`
|
|
1020
1020
|
|
|
1021
|
-
The letter-spacing CSS property sets the horizontal spacing behavior between text characters. This value is added to the natural spacing between characters while rendering the text. Positive values of letter-spacing causes characters to spread farther apart, while negative values of letter-spacing bring characters closer together.
|
|
1021
|
+
The letter-spacing CSS property sets the horizontal spacing behavior between text characters. This value is added to the natural spacing between characters while rendering the text. Positive values of letter-spacing causes characters to spread farther apart, while negative values of letter-spacing bring characters closer together. A number is pixels; Tailwind's tracking names (`tighter` … `widest`) are in `em`, so they scale with the text — what a display heading wants.
|
|
1022
1022
|
|
|
1023
1023
|
- Writes: `letter-spacing`
|
|
1024
|
-
- Values: a number
|
|
1024
|
+
- Values: `tighter` · `tight` · `normal` · `wide` · `wider` · `widest`, a number
|
|
1025
1025
|
- Example: `letterSpacing={4}` → `letter-spacing: 4px`
|
|
1026
1026
|
|
|
1027
1027
|
### `lineHeight`
|
|
@@ -1189,7 +1189,7 @@ The CSS outline-width property sets the thickness of an element's outline. An ou
|
|
|
1189
1189
|
The outline-color CSS property sets the color of an element's outline.
|
|
1190
1190
|
|
|
1191
1191
|
- Writes: `outline-color`
|
|
1192
|
-
- Values:
|
|
1192
|
+
- Values: 326 named values, anything else the types allow
|
|
1193
1193
|
- Example: `outlineColor="sky-500"` → `outline-color: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
1194
1194
|
|
|
1195
1195
|
### `outlineOffset`
|
|
@@ -1421,7 +1421,7 @@ A hard-edged shadow outside the border box, in px — `ring={2}`. Unlike `outlin
|
|
|
1421
1421
|
What colour `ring` draws in. `currentColor` otherwise.
|
|
1422
1422
|
|
|
1423
1423
|
- Writes: `--boxRingColor`
|
|
1424
|
-
- Values:
|
|
1424
|
+
- Values: 326 named values, anything else the types allow
|
|
1425
1425
|
- Example: `ringColor="sky-500"` → `--boxRingColor: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
1426
1426
|
|
|
1427
1427
|
### `rotate`
|
|
@@ -1477,7 +1477,7 @@ The scale CSS property lets you specify scale transforms individually and indepe
|
|
|
1477
1477
|
The scrollbar-color CSS property sets the color of the scrollbar thumb and track. The value pair is [thumbColor, trackColor].
|
|
1478
1478
|
|
|
1479
1479
|
- Writes: `scrollbar-color`
|
|
1480
|
-
- Values: `currentColor,transparent,green,red,blue,gray,black,white,vi,slate-50,slate-100,slate-200,slate-300,slate-400,slate-500,slate-600,slate-700,slate-800,slate-900,slate-950,gray-50,gray-100,gray-200,gray-300,gray-400,gray-500,gray-600,gray-700,gray-800,gray-900,gray-950,zinc-50,zinc-100,zinc-200,zinc-300,zinc-400,zinc-500,zinc-600,zinc-700,zinc-800,zinc-900,zinc-950,neutral-50,neutral-100,neutral-200,neutral-300,neutral-400,neutral-500,neutral-600,neutral-700,neutral-800,neutral-900,neutral-950,stone-50,stone-100,stone-200,stone-300,stone-400,stone-500,stone-600,stone-700,stone-800,stone-900,stone-950,mauve-50,mauve-100,mauve-200,mauve-300,mauve-400,mauve-500,mauve-600,mauve-700,mauve-800,mauve-900,mauve-950,mist-50,mist-100,mist-200,mist-300,mist-400,mist-500,mist-600,mist-700,mist-800,mist-900,mist-950,olive-50,olive-100,olive-200,olive-300,olive-400,olive-500,olive-600,olive-700,olive-800,olive-900,olive-950,taupe-50,taupe-100,taupe-200,taupe-300,taupe-400,taupe-500,taupe-600,taupe-700,taupe-800,taupe-900,taupe-950,red-50,red-100,red-200,red-300,red-400,red-500,red-600,red-700,red-800,red-900,red-950,orange-50,orange-100,orange-200,orange-300,orange-400,orange-500,orange-600,orange-700,orange-800,orange-900,orange-950,amber-50,amber-100,amber-200,amber-300,amber-400,amber-500,amber-600,amber-700,amber-800,amber-900,amber-950,yellow-50,yellow-100,yellow-200,yellow-300,yellow-400,yellow-500,yellow-600,yellow-700,yellow-800,yellow-900,yellow-950,lime-50,lime-100,lime-200,lime-300,lime-400,lime-500,lime-600,lime-700,lime-800,lime-900,lime-950,green-50,green-100,green-200,green-300,green-400,green-500,green-600,green-700,green-800,green-900,green-950,emerald-50,emerald-100,emerald-200,emerald-300,emerald-400,emerald-500,emerald-600,emerald-700,emerald-800,emerald-900,emerald-950,teal-50,teal-100,teal-200,teal-300,teal-400,teal-500,teal-600,teal-700,teal-800,teal-900,teal-950,cyan-50,cyan-100,cyan-200,cyan-300,cyan-400,cyan-500,cyan-600,cyan-700,cyan-800,cyan-900,cyan-950,sky-50,sky-100,sky-200,sky-300,sky-400,sky-500,sky-600,sky-700,sky-800,sky-900,sky-950,blue-50,blue-100,blue-200,blue-300,blue-400,blue-500,blue-600,blue-700,blue-800,blue-900,blue-950,indigo-50,indigo-100,indigo-200,indigo-300,indigo-400,indigo-500,indigo-600,indigo-700,indigo-800,indigo-900,indigo-950,violet-50,violet-100,violet-200,violet-300,violet-400,violet-500,violet-600,violet-700,violet-800,violet-900,violet-950,purple-50,purple-100,purple-200,purple-300,purple-400,purple-500,purple-600,purple-700,purple-800,purple-900,purple-950,fuchsia-50,fuchsia-100,fuchsia-200,fuchsia-300,fuchsia-400,fuchsia-500,fuchsia-600,fuchsia-700,fuchsia-800,fuchsia-900,fuchsia-950,pink-50,pink-100,pink-200,pink-300,pink-400,pink-500,pink-600,pink-700,pink-800,pink-900,pink-950,rose-50,rose-100,rose-200,rose-300,rose-400,rose-500,rose-600,rose-700,rose-800,rose-900,rose-950,none`
|
|
1480
|
+
- Values: `currentColor,transparent,green,red,blue,gray,black,white,vi,slate-50,slate-100,slate-200,slate-300,slate-400,slate-500,slate-600,slate-700,slate-800,slate-900,slate-950,gray-50,gray-100,gray-200,gray-300,gray-400,gray-500,gray-600,gray-700,gray-800,gray-900,gray-950,zinc-50,zinc-100,zinc-200,zinc-300,zinc-400,zinc-500,zinc-600,zinc-700,zinc-800,zinc-900,zinc-950,neutral-50,neutral-100,neutral-200,neutral-300,neutral-400,neutral-500,neutral-600,neutral-700,neutral-800,neutral-900,neutral-950,stone-50,stone-100,stone-200,stone-300,stone-400,stone-500,stone-600,stone-700,stone-800,stone-900,stone-950,mauve-50,mauve-100,mauve-200,mauve-300,mauve-400,mauve-500,mauve-600,mauve-700,mauve-800,mauve-900,mauve-950,mist-50,mist-100,mist-200,mist-300,mist-400,mist-500,mist-600,mist-700,mist-800,mist-900,mist-950,olive-50,olive-100,olive-200,olive-300,olive-400,olive-500,olive-600,olive-700,olive-800,olive-900,olive-950,taupe-50,taupe-100,taupe-200,taupe-300,taupe-400,taupe-500,taupe-600,taupe-700,taupe-800,taupe-900,taupe-950,red-50,red-100,red-200,red-300,red-400,red-500,red-600,red-700,red-800,red-900,red-950,orange-50,orange-100,orange-200,orange-300,orange-400,orange-500,orange-600,orange-700,orange-800,orange-900,orange-950,amber-50,amber-100,amber-200,amber-300,amber-400,amber-500,amber-600,amber-700,amber-800,amber-900,amber-950,yellow-50,yellow-100,yellow-200,yellow-300,yellow-400,yellow-500,yellow-600,yellow-700,yellow-800,yellow-900,yellow-950,lime-50,lime-100,lime-200,lime-300,lime-400,lime-500,lime-600,lime-700,lime-800,lime-900,lime-950,green-50,green-100,green-200,green-300,green-400,green-500,green-600,green-700,green-800,green-900,green-950,emerald-50,emerald-100,emerald-200,emerald-300,emerald-400,emerald-500,emerald-600,emerald-700,emerald-800,emerald-900,emerald-950,teal-50,teal-100,teal-200,teal-300,teal-400,teal-500,teal-600,teal-700,teal-800,teal-900,teal-950,cyan-50,cyan-100,cyan-200,cyan-300,cyan-400,cyan-500,cyan-600,cyan-700,cyan-800,cyan-900,cyan-950,sky-50,sky-100,sky-200,sky-300,sky-400,sky-500,sky-600,sky-700,sky-800,sky-900,sky-950,blue-50,blue-100,blue-200,blue-300,blue-400,blue-500,blue-600,blue-700,blue-800,blue-900,blue-950,indigo-50,indigo-100,indigo-200,indigo-300,indigo-400,indigo-500,indigo-600,indigo-700,indigo-800,indigo-900,indigo-950,violet-50,violet-100,violet-200,violet-300,violet-400,violet-500,violet-600,violet-700,violet-800,violet-900,violet-950,purple-50,purple-100,purple-200,purple-300,purple-400,purple-500,purple-600,purple-700,purple-800,purple-900,purple-950,fuchsia-50,fuchsia-100,fuchsia-200,fuchsia-300,fuchsia-400,fuchsia-500,fuchsia-600,fuchsia-700,fuchsia-800,fuchsia-900,fuchsia-950,pink-50,pink-100,pink-200,pink-300,pink-400,pink-500,pink-600,pink-700,pink-800,pink-900,pink-950,rose-50,rose-100,rose-200,rose-300,rose-400,rose-500,rose-600,rose-700,rose-800,rose-900,rose-950,accent-50,accent-100,accent-200,accent-300,accent-400,accent-500,accent-600,accent-700,accent-800,accent-900,accent-950,base-50,base-100,base-200,base-300,base-400,base-500,base-600,base-700,base-800,base-900,base-950,none`
|
|
1481
1481
|
- Example: `scrollbarColor={['gray-400', 'gray-100']}` → `scrollbar-color: var(--gray-400,oklch(70.7% .022 261.3)) var(--gray-100,oklch(96.7% .003 264.5))`
|
|
1482
1482
|
|
|
1483
1483
|
### `scrollbarGutter`
|
|
@@ -1541,7 +1541,7 @@ The elevation of the box: `xxs` through `xxl` on the elevation scale, or one of
|
|
|
1541
1541
|
What colour `shadow` draws in — the scale's own translucent black otherwise. Shows nothing on its own.
|
|
1542
1542
|
|
|
1543
1543
|
- Writes: `--boxShadowColor`
|
|
1544
|
-
- Values:
|
|
1544
|
+
- Values: 326 named values, anything else the types allow
|
|
1545
1545
|
- Example: `shadowColor="sky-500"` → `--boxShadowColor: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
1546
1546
|
|
|
1547
1547
|
### `shapeRendering`
|
|
@@ -1557,7 +1557,7 @@ The shape-rendering CSS property tells the renderer what to trade away when draw
|
|
|
1557
1557
|
The stroke CSS property defines the color or SVG paint server used to draw an element's stroke. Takes a colour token, `stroke="url(#sky)"` for a paint server the document defines, or `stroke="var(--chart-1)"` for a variable somebody else declared.
|
|
1558
1558
|
|
|
1559
1559
|
- Writes: `stroke`
|
|
1560
|
-
- Values:
|
|
1560
|
+
- Values: 326 named values, anything else the types allow
|
|
1561
1561
|
- Example: `stroke="sky-500"` → `stroke: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
1562
1562
|
|
|
1563
1563
|
### `strokeDasharray`
|
|
@@ -1669,7 +1669,7 @@ A shadow behind the text rather than the box: `xxs` through `lg`, recoloured by
|
|
|
1669
1669
|
What colour `textShadow` draws in. Shows nothing on its own.
|
|
1670
1670
|
|
|
1671
1671
|
- Writes: `--boxTextShadowColor`
|
|
1672
|
-
- Values:
|
|
1672
|
+
- Values: 326 named values, anything else the types allow
|
|
1673
1673
|
- Example: `textShadowColor="sky-500"` → `--boxTextShadowColor: var(--sky-500,oklch(68.5% .169 237.3))`
|
|
1674
1674
|
|
|
1675
1675
|
### `textTransform`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@box-kite/react",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"pages/**"
|
|
@@ -44,6 +44,11 @@
|
|
|
44
44
|
"import": "./interop.mjs",
|
|
45
45
|
"require": "./interop.cjs"
|
|
46
46
|
},
|
|
47
|
+
"./date": {
|
|
48
|
+
"types": "./date.d.ts",
|
|
49
|
+
"import": "./date.mjs",
|
|
50
|
+
"require": "./date.cjs"
|
|
51
|
+
},
|
|
47
52
|
"./spec": {
|
|
48
53
|
"types": "./spec.d.ts",
|
|
49
54
|
"import": "./spec.mjs",
|
|
@@ -76,6 +81,7 @@
|
|
|
76
81
|
"build": "npm run build:core && vite build",
|
|
77
82
|
"build:core": "vite build --config vite.core.config.ts && node scripts/postbuild-core.mjs",
|
|
78
83
|
"build:mcp": "vite build --config vite.mcp.config.ts && node scripts/postbuild-mcp.mjs",
|
|
84
|
+
"build:create": "vite build --config vite.create.config.ts && node scripts/postbuild-create.mjs",
|
|
79
85
|
"postbuild": "node scripts/postbuild.mjs",
|
|
80
86
|
"build:dev": "npm run build:core && vite build --mode dev",
|
|
81
87
|
"compile": "tsc --noEmit --skipLibCheck",
|
|
@@ -93,10 +99,12 @@
|
|
|
93
99
|
"docs:components": "node scripts/check-components-api.mjs --fix",
|
|
94
100
|
"check:catalog": "node scripts/check-catalog-api.mjs",
|
|
95
101
|
"docs:catalog": "node scripts/check-catalog-api.mjs --fix",
|
|
102
|
+
"check:create": "node scripts/check-create-templates.mjs",
|
|
103
|
+
"docs:create": "node scripts/check-create-templates.mjs --fix",
|
|
96
104
|
"check:conventions": "node scripts/check-component-conventions.mjs",
|
|
97
105
|
"check:agents": "node scripts/check-agent-files.mjs",
|
|
98
106
|
"docs:agents": "node scripts/check-agent-files.mjs --fix",
|
|
99
|
-
"check:package": "publint dist && attw --pack dist --ignore-rules false-esm cjs-resolves-to-esm internal-resolution-error && publint dist-core && attw --pack dist-core --ignore-rules false-esm cjs-resolves-to-esm internal-resolution-error && publint dist-mcp",
|
|
107
|
+
"check:package": "publint dist && attw --pack dist --ignore-rules false-esm cjs-resolves-to-esm internal-resolution-error && publint dist-core && attw --pack dist-core --ignore-rules false-esm cjs-resolves-to-esm internal-resolution-error && publint dist-mcp && publint dist-create",
|
|
100
108
|
"bench": "node bench/run.mjs",
|
|
101
109
|
"compare": "node dev/compare/report.mjs",
|
|
102
110
|
"compare:tailwind": "node dev/compare/report.mjs tailwind",
|
|
@@ -117,7 +125,7 @@
|
|
|
117
125
|
"./themeReveal-*"
|
|
118
126
|
],
|
|
119
127
|
"gzip": true,
|
|
120
|
-
"limit": "
|
|
128
|
+
"limit": "40.47 kB"
|
|
121
129
|
},
|
|
122
130
|
{
|
|
123
131
|
"name": "Box in a Server Component (react-server entry)",
|
|
@@ -129,7 +137,7 @@
|
|
|
129
137
|
"./themeReveal-*"
|
|
130
138
|
],
|
|
131
139
|
"gzip": true,
|
|
132
|
-
"limit": "
|
|
140
|
+
"limit": "38.18 kB"
|
|
133
141
|
},
|
|
134
142
|
{
|
|
135
143
|
"name": "Behavior primitives (a11y entry)",
|
|
@@ -165,7 +173,7 @@
|
|
|
165
173
|
"./themeReveal-*"
|
|
166
174
|
],
|
|
167
175
|
"gzip": true,
|
|
168
|
-
"limit": "
|
|
176
|
+
"limit": "61.80 kB"
|
|
169
177
|
},
|
|
170
178
|
{
|
|
171
179
|
"name": "Spec renderer (spec entry)",
|
|
@@ -191,11 +199,23 @@
|
|
|
191
199
|
"gzip": true,
|
|
192
200
|
"limit": "4 KB"
|
|
193
201
|
},
|
|
202
|
+
{
|
|
203
|
+
"name": "Dates, times and zones (date entry, no React)",
|
|
204
|
+
"path": "dist/date.mjs",
|
|
205
|
+
"ignore": [
|
|
206
|
+
"react",
|
|
207
|
+
"react-dom",
|
|
208
|
+
"./diagnostics-*",
|
|
209
|
+
"./themeReveal-*"
|
|
210
|
+
],
|
|
211
|
+
"gzip": true,
|
|
212
|
+
"limit": "7.59 KB"
|
|
213
|
+
},
|
|
194
214
|
{
|
|
195
215
|
"name": "Core engine (@box-kite/core, no React)",
|
|
196
216
|
"path": "dist-core/core.mjs",
|
|
197
217
|
"gzip": true,
|
|
198
|
-
"limit": "
|
|
218
|
+
"limit": "39.43 kB",
|
|
199
219
|
"ignore": [
|
|
200
220
|
"./diagnostics-*",
|
|
201
221
|
"./themeReveal-*"
|
|
@@ -211,7 +231,7 @@
|
|
|
211
231
|
"./themeReveal-*"
|
|
212
232
|
],
|
|
213
233
|
"gzip": true,
|
|
214
|
-
"limit": "
|
|
234
|
+
"limit": "42.53 kB"
|
|
215
235
|
},
|
|
216
236
|
{
|
|
217
237
|
"name": "Popover",
|
|
@@ -223,7 +243,7 @@
|
|
|
223
243
|
"./themeReveal-*"
|
|
224
244
|
],
|
|
225
245
|
"gzip": true,
|
|
226
|
-
"limit": "
|
|
246
|
+
"limit": "44.08 kB"
|
|
227
247
|
},
|
|
228
248
|
{
|
|
229
249
|
"name": "Menu",
|
|
@@ -235,7 +255,7 @@
|
|
|
235
255
|
"./themeReveal-*"
|
|
236
256
|
],
|
|
237
257
|
"gzip": true,
|
|
238
|
-
"limit": "
|
|
258
|
+
"limit": "46.32 kB"
|
|
239
259
|
},
|
|
240
260
|
{
|
|
241
261
|
"name": "Accordion",
|
|
@@ -247,7 +267,7 @@
|
|
|
247
267
|
"./themeReveal-*"
|
|
248
268
|
],
|
|
249
269
|
"gzip": true,
|
|
250
|
-
"limit": "
|
|
270
|
+
"limit": "41.80 kB"
|
|
251
271
|
},
|
|
252
272
|
{
|
|
253
273
|
"name": "Agent",
|
|
@@ -259,7 +279,7 @@
|
|
|
259
279
|
"./themeReveal-*"
|
|
260
280
|
],
|
|
261
281
|
"gzip": true,
|
|
262
|
-
"limit": "
|
|
282
|
+
"limit": "42.57 kB"
|
|
263
283
|
},
|
|
264
284
|
{
|
|
265
285
|
"name": "Markdown",
|
|
@@ -271,7 +291,7 @@
|
|
|
271
291
|
"./themeReveal-*"
|
|
272
292
|
],
|
|
273
293
|
"gzip": true,
|
|
274
|
-
"limit": "
|
|
294
|
+
"limit": "41.04 kB"
|
|
275
295
|
},
|
|
276
296
|
{
|
|
277
297
|
"name": "List",
|
|
@@ -283,7 +303,7 @@
|
|
|
283
303
|
"./themeReveal-*"
|
|
284
304
|
],
|
|
285
305
|
"gzip": true,
|
|
286
|
-
"limit": "
|
|
306
|
+
"limit": "42.38 kB"
|
|
287
307
|
},
|
|
288
308
|
{
|
|
289
309
|
"name": "SwipeItem",
|
|
@@ -295,7 +315,7 @@
|
|
|
295
315
|
"./themeReveal-*"
|
|
296
316
|
],
|
|
297
317
|
"gzip": true,
|
|
298
|
-
"limit": "
|
|
318
|
+
"limit": "45.47 kB"
|
|
299
319
|
},
|
|
300
320
|
{
|
|
301
321
|
"name": "SortableList",
|
|
@@ -307,7 +327,7 @@
|
|
|
307
327
|
"./themeReveal-*"
|
|
308
328
|
],
|
|
309
329
|
"gzip": true,
|
|
310
|
-
"limit": "
|
|
330
|
+
"limit": "45.80 kB"
|
|
311
331
|
},
|
|
312
332
|
{
|
|
313
333
|
"name": "VirtualList",
|
|
@@ -319,7 +339,7 @@
|
|
|
319
339
|
"./themeReveal-*"
|
|
320
340
|
],
|
|
321
341
|
"gzip": true,
|
|
322
|
-
"limit": "
|
|
342
|
+
"limit": "44.58 kB"
|
|
323
343
|
},
|
|
324
344
|
{
|
|
325
345
|
"name": "Skeleton",
|
|
@@ -331,7 +351,7 @@
|
|
|
331
351
|
"./themeReveal-*"
|
|
332
352
|
],
|
|
333
353
|
"gzip": true,
|
|
334
|
-
"limit": "38
|
|
354
|
+
"limit": "40.38 kB"
|
|
335
355
|
},
|
|
336
356
|
{
|
|
337
357
|
"name": "Tabs",
|
|
@@ -343,7 +363,7 @@
|
|
|
343
363
|
"./themeReveal-*"
|
|
344
364
|
],
|
|
345
365
|
"gzip": true,
|
|
346
|
-
"limit": "
|
|
366
|
+
"limit": "43.01 kB"
|
|
347
367
|
},
|
|
348
368
|
{
|
|
349
369
|
"name": "Slider",
|
|
@@ -355,7 +375,7 @@
|
|
|
355
375
|
"./themeReveal-*"
|
|
356
376
|
],
|
|
357
377
|
"gzip": true,
|
|
358
|
-
"limit": "
|
|
378
|
+
"limit": "42.16 kB"
|
|
359
379
|
},
|
|
360
380
|
{
|
|
361
381
|
"name": "Progress",
|
|
@@ -367,7 +387,7 @@
|
|
|
367
387
|
"./themeReveal-*"
|
|
368
388
|
],
|
|
369
389
|
"gzip": true,
|
|
370
|
-
"limit": "
|
|
390
|
+
"limit": "40.35 kB"
|
|
371
391
|
},
|
|
372
392
|
{
|
|
373
393
|
"name": "Toaster",
|
|
@@ -379,7 +399,67 @@
|
|
|
379
399
|
"./themeReveal-*"
|
|
380
400
|
],
|
|
381
401
|
"gzip": true,
|
|
382
|
-
"limit": "
|
|
402
|
+
"limit": "43.78 kB"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"name": "DateField",
|
|
406
|
+
"path": "dist/components/dateField.mjs",
|
|
407
|
+
"ignore": [
|
|
408
|
+
"react",
|
|
409
|
+
"react-dom",
|
|
410
|
+
"./diagnostics-*",
|
|
411
|
+
"./themeReveal-*"
|
|
412
|
+
],
|
|
413
|
+
"gzip": true,
|
|
414
|
+
"limit": "49.03 kB"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"name": "Calendar",
|
|
418
|
+
"path": "dist/components/calendar.mjs",
|
|
419
|
+
"ignore": [
|
|
420
|
+
"react",
|
|
421
|
+
"react-dom",
|
|
422
|
+
"./diagnostics-*",
|
|
423
|
+
"./themeReveal-*"
|
|
424
|
+
],
|
|
425
|
+
"gzip": true,
|
|
426
|
+
"limit": "48.39 kB"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"name": "DatePicker",
|
|
430
|
+
"path": "dist/components/datePicker.mjs",
|
|
431
|
+
"ignore": [
|
|
432
|
+
"react",
|
|
433
|
+
"react-dom",
|
|
434
|
+
"./diagnostics-*",
|
|
435
|
+
"./themeReveal-*"
|
|
436
|
+
],
|
|
437
|
+
"gzip": true,
|
|
438
|
+
"limit": "61.10 kB"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"name": "DateTime",
|
|
442
|
+
"path": "dist/components/dateTime.mjs",
|
|
443
|
+
"ignore": [
|
|
444
|
+
"react",
|
|
445
|
+
"react-dom",
|
|
446
|
+
"./diagnostics-*",
|
|
447
|
+
"./themeReveal-*"
|
|
448
|
+
],
|
|
449
|
+
"gzip": true,
|
|
450
|
+
"limit": "43.92 kB"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"name": "TimeZoneSelect",
|
|
454
|
+
"path": "dist/components/timeZoneSelect.mjs",
|
|
455
|
+
"ignore": [
|
|
456
|
+
"react",
|
|
457
|
+
"react-dom",
|
|
458
|
+
"./diagnostics-*",
|
|
459
|
+
"./themeReveal-*"
|
|
460
|
+
],
|
|
461
|
+
"gzip": true,
|
|
462
|
+
"limit": "51.50 kB"
|
|
383
463
|
},
|
|
384
464
|
{
|
|
385
465
|
"name": "Combobox",
|
|
@@ -391,7 +471,7 @@
|
|
|
391
471
|
"./themeReveal-*"
|
|
392
472
|
],
|
|
393
473
|
"gzip": true,
|
|
394
|
-
"limit": "
|
|
474
|
+
"limit": "49.59 kB"
|
|
395
475
|
},
|
|
396
476
|
{
|
|
397
477
|
"name": "Dashboard",
|
|
@@ -403,7 +483,7 @@
|
|
|
403
483
|
"./themeReveal-*"
|
|
404
484
|
],
|
|
405
485
|
"gzip": true,
|
|
406
|
-
"limit": "
|
|
486
|
+
"limit": "46.06 kB"
|
|
407
487
|
},
|
|
408
488
|
{
|
|
409
489
|
"name": "DataGrid",
|
|
@@ -413,10 +493,11 @@
|
|
|
413
493
|
"react-dom",
|
|
414
494
|
"./diagnostics-*",
|
|
415
495
|
"./themeReveal-*",
|
|
416
|
-
"../dataGridList.mjs"
|
|
496
|
+
"../dataGridList.mjs",
|
|
497
|
+
"../dataGridDateParts.mjs"
|
|
417
498
|
],
|
|
418
499
|
"gzip": true,
|
|
419
|
-
"limit": "
|
|
500
|
+
"limit": "95.67 kB"
|
|
420
501
|
},
|
|
421
502
|
{
|
|
422
503
|
"name": "DataGrid export, the chunk fetched on the first press",
|
|
@@ -444,6 +525,20 @@
|
|
|
444
525
|
"gzip": true,
|
|
445
526
|
"limit": "7.83 KB"
|
|
446
527
|
},
|
|
528
|
+
{
|
|
529
|
+
"name": "DataGrid dates, the chunk a grid with a date column fetches on top of the grid",
|
|
530
|
+
"path": "dist/dataGridDateParts.mjs",
|
|
531
|
+
"ignore": [
|
|
532
|
+
"react",
|
|
533
|
+
"react-dom",
|
|
534
|
+
"./diagnostics-*",
|
|
535
|
+
"./themeReveal-*",
|
|
536
|
+
"./box.mjs",
|
|
537
|
+
"./components/*"
|
|
538
|
+
],
|
|
539
|
+
"gzip": true,
|
|
540
|
+
"limit": "7.49 KB"
|
|
541
|
+
},
|
|
447
542
|
{
|
|
448
543
|
"name": "Full library (Box + ssg + every component)",
|
|
449
544
|
"path": "dev/size-full.mjs",
|
|
@@ -454,7 +549,7 @@
|
|
|
454
549
|
"./themeReveal-*"
|
|
455
550
|
],
|
|
456
551
|
"gzip": true,
|
|
457
|
-
"limit": "
|
|
552
|
+
"limit": "163.09 kB"
|
|
458
553
|
}
|
|
459
554
|
],
|
|
460
555
|
"repository": {
|
|
@@ -494,13 +589,14 @@
|
|
|
494
589
|
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
495
590
|
},
|
|
496
591
|
"dependencies": {
|
|
497
|
-
"@box-kite/core": "2.2.
|
|
592
|
+
"@box-kite/core": "2.2.7",
|
|
498
593
|
"csstype": "^3.2.3",
|
|
499
594
|
"use-sync-external-store": "^1.6.0"
|
|
500
595
|
},
|
|
501
596
|
"devDependencies": {
|
|
502
597
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
503
598
|
"@assistant-ui/core": "^0.3.20",
|
|
599
|
+
"@clack/prompts": "^1.8.1",
|
|
504
600
|
"@copilotkit/a2ui-renderer": "^1.73.0",
|
|
505
601
|
"@emotion/react": "^11.14.0",
|
|
506
602
|
"@emotion/styled": "^11.14.1",
|
|
@@ -531,6 +627,7 @@
|
|
|
531
627
|
"ag-grid-community": "^36.2.0",
|
|
532
628
|
"ag-grid-react": "^36.2.0",
|
|
533
629
|
"axe-core": "^4.13.0",
|
|
630
|
+
"create-vite": "^9.3.0",
|
|
534
631
|
"eslint": "^10.8.0",
|
|
535
632
|
"eslint-config-prettier": "^10.1.8",
|
|
536
633
|
"eslint-plugin-import-x": "^4.17.1",
|
package/react/boxComponent.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ type Render = (props: any, ref: any) => React.ReactNode;
|
|
|
4
4
|
* A component that is a Box: memoized, which skips a leaf whose props are all primitives, and one fiber on
|
|
5
5
|
* React 19. React 18 needs a `forwardRef` under the `memo`, which makes it two.
|
|
6
6
|
*/
|
|
7
|
-
export default function boxComponent(render: Render, displayName: string): React.MemoExoticComponent<((props: {
|
|
7
|
+
export default function boxComponent(render: Render, displayName: string): React.MemoExoticComponent<(({ ref, ...props }: {
|
|
8
8
|
ref?: Ref<unknown>;
|
|
9
9
|
}) => React.ReactNode) | React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>>;
|
|
10
10
|
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DateReadings } from '../../utils/date/dateTime';
|
|
2
|
+
import { ChangeDetails } from '../a11y/useControllableState';
|
|
3
|
+
/**
|
|
4
|
+
* Why a date value changed: digits or arrows in a field, a paste, a day picked in a calendar or a time in a
|
|
5
|
+
* list, a preset, the clear button, or a form reset.
|
|
6
|
+
*/
|
|
7
|
+
export type DateChangeReason = 'keyboard' | 'paste' | 'select' | 'preset' | 'clear' | 'reset';
|
|
8
|
+
/**
|
|
9
|
+
* What a date control hands its `onValueChange` beside the string: the reason, plus every reading of the
|
|
10
|
+
* value an app is likely to want — `utc`, the reader's `local` wall clock, a `Date`, the epoch.
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <DateField type="datetime" onValueChange={(value, { utc, local }) => save(utc)} />
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export type DateChangeDetails<TReason extends string = DateChangeReason> = ChangeDetails<TReason> & DateReadings;
|
|
17
|
+
/** A date control's change handler: the canonical string (or `null`) and the readings. */
|
|
18
|
+
export type DateChangeHandler<TValue = string | null, TReason extends string = DateChangeReason> = (value: TValue, details: DateChangeDetails<TReason>) => void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ZoneInput } from '../../utils/date/zones';
|
|
2
|
+
/** What a subtree knows about its reader: the language and the zone. */
|
|
3
|
+
export interface DateEnvironmentValue {
|
|
4
|
+
/** A BCP 47 tag. */
|
|
5
|
+
locale?: string;
|
|
6
|
+
/** The reader's zone — what `'local'` means inside. */
|
|
7
|
+
timeZone?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface DateProviderProps extends DateEnvironmentValue {
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Says who the reader is for every date component inside: their language and their zone. On a server that
|
|
14
|
+
* read the zone off a cookie (`readZoneCookie`), this is what makes the first paint already right — the
|
|
15
|
+
* server and the browser render the same text, and nothing changes after hydration.
|
|
16
|
+
*/
|
|
17
|
+
export declare function DateProvider({ locale, timeZone, children }: DateProviderProps): import("react").JSX.Element;
|
|
18
|
+
export interface DateEnvironment {
|
|
19
|
+
locale: string;
|
|
20
|
+
/** The zone resolved to a name: `UTC`, an IANA zone or a fixed offset. */
|
|
21
|
+
zone: string;
|
|
22
|
+
/** The reader's own zone, which is what `'local'` resolved to. */
|
|
23
|
+
readerZone: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The locale and zone a date component renders in. A prop wins, then a `DateProvider`, then
|
|
27
|
+
* `configureDates()`, then the browser. **A server and a hydrating browser both use the fallback** — `UTC` and
|
|
28
|
+
* `en-US` unless something above configured them — because neither can know the other's runtime, and two
|
|
29
|
+
* renders that disagree are a hydration error. The render after hydration switches to the reader's own.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useDateEnvironment(props?: {
|
|
32
|
+
locale?: string;
|
|
33
|
+
zone?: ZoneInput;
|
|
34
|
+
}): DateEnvironment;
|
package/react/theme/theme.d.ts
CHANGED
|
@@ -29,6 +29,13 @@ interface ThemeProps {
|
|
|
29
29
|
* since one wrapper holding a design in both light and dark is what a themed section usually is.
|
|
30
30
|
*/
|
|
31
31
|
components?: ComponentsRegistry;
|
|
32
|
+
/**
|
|
33
|
+
* The design this subtree is drawn in — a name given to `Box.components(styles, { design })` — written as
|
|
34
|
+
* `data-design` on `<html>` (`use="global"`) or on the wrapper. `Box.useDesign()` reads and sets it.
|
|
35
|
+
*/
|
|
36
|
+
design?: string;
|
|
37
|
+
/** When provided, persists the design `Box.useDesign()` sets to localStorage under this key. */
|
|
38
|
+
designStorageKey?: string;
|
|
32
39
|
}
|
|
33
40
|
/**
|
|
34
41
|
* The React binding for the theme system. Everything that actually touches the platform — reading
|
|
@@ -39,5 +46,7 @@ interface ThemeProps {
|
|
|
39
46
|
declare function Theme(props: ThemeProps): React.JSX.Element;
|
|
40
47
|
declare namespace Theme {
|
|
41
48
|
function useTheme(): [string, (theme: string | null) => void];
|
|
49
|
+
/** The design the nearest provider is drawing, and the setter; null goes back to its `design` prop. */
|
|
50
|
+
function useDesign(): [string | undefined, (design: string | null) => void];
|
|
42
51
|
}
|
|
43
52
|
export default Theme;
|
|
@@ -2,6 +2,8 @@ import { default as React } from 'react';
|
|
|
2
2
|
interface ThemeContextProps {
|
|
3
3
|
theme: string;
|
|
4
4
|
setTheme(theme: string | null): void;
|
|
5
|
+
design?: string;
|
|
6
|
+
setDesign(design: string | null): void;
|
|
5
7
|
}
|
|
6
8
|
declare const ThemeContext: React.Context<ThemeContextProps>;
|
|
7
9
|
export default ThemeContext;
|
package/react-shared.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime.cjs");let t=require("react");t=e.t(t,1);let n=require("@box-kite/core");function r({classNames:e,styleElements:t},r){return{className:(0,n.classNames)(e,r).join(` `),styles:t}}var i=parseInt(t.default.version,10)>=19;function a(e,n){let r=i?t=>e(
|
|
1
|
+
const e=require("./rolldown-runtime.cjs");let t=require("react");t=e.t(t,1);let n=require("@box-kite/core");function r({classNames:e,styleElements:t},r){return{className:(0,n.classNames)(e,r).join(` `),styles:t}}var i=parseInt(t.default.version,10)>=19;function a(e,n){let r=i?({ref:t,...n})=>e(n,t??null):(0,t.forwardRef)(e),a=(0,t.memo)(r);return r.displayName=n,a.displayName=n,a}var o={selected:`aria-selected`},s;(function(e){function t(e,t,n){e!==void 0&&e!=null&&(n[o[t]??t]=Array.isArray(e)?e[0]:e)}e.assignBooleanProp=t})(s||={});var c=s;function l(e,t){let r=e,{props:i,className:a,disabled:o,required:s,checked:l,selected:u}=r,d={...i,className:(0,n.classNames)(t,a).join(` `)};return c.assignBooleanProp(o,`disabled`,d),c.assignBooleanProp(s,`required`,d),c.assignBooleanProp(l,`checked`,d),c.assignBooleanProp(u,`selected`,d),`style`in r&&(d.style=r.style),`id`in r&&(d.id=r.id),d}var u=parseInt(t.default.version,10)>=19,d=!1,f=new WeakMap,p=new WeakMap;function m(e){let n=f.get(e);if(!n){let{href:r,css:i,precedence:a}=e;n=t.default.createElement(`style`,{key:r,href:r,precedence:a,dangerouslySetInnerHTML:{__html:i}}),f.set(e,n)}return n}function h(e){if(!e?.length)return;!u&&!d&&(d=!0,console.warn(`[box-kite] Box.configure({ sink: 'element' }) needs React 19 to hoist and dedupe its <style> elements; React ${t.default.version} will render them inline. Use the default sink instead.`));let n=p.get(e);return n||(n=e.map(m),p.set(e,n)),n}function g(e,t,r){let{classNames:i,signature:a,styleElements:o}=(0,n.getDefaultEngine)().resolveClassNames(e,t,r);return{classNames:i,signature:a,styleElements:h(o)}}var _=`__boxAttributesInProps`;function v(e){return e[_]=!0,e}function y(e){return typeof e==`function`||typeof e==`object`&&e?e[_]===!0:!1}var b=[`role`,`aria-label`,`aria-labelledby`,`aria-hidden`];function x(e,t){if(e!==void 0)return{role:`img`,"aria-label":e};if(!(t&&b.some(e=>e in t)))return{"aria-hidden":!0}}var S;(function(e){function t(e){return e.charAt(0).toUpperCase()+e.slice(1)}e.capitalize=t})(S||={});var C=S,w;(function(e){function t(e,t,n){let r={...e},i=r.props||{};return t.forEach(e=>{e in r&&(i[e]=r[e],delete r[e])}),n&&Object.entries(n).forEach(([e,t])=>{i[e]=t}),r.props=i,r}e.buildProps=t;function n(e){return!!e&&typeof e==`object`}e.isObject=n;function r(e,t){return e in t}e.isKeyOf=r})(w||={});var T=w,E=[`sky-500`,`emerald-500`,`amber-500`,`violet-500`,`rose-500`,`cyan-500`],D=[`sky-400`,`emerald-400`,`amber-400`,`violet-400`,`rose-400`,`cyan-400`];function O(e){return e.reduce((e,t,n)=>(e[`chart-${n+1}`]=t,e),{})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return h}});
|
package/react-shared.mjs
CHANGED
|
@@ -11,7 +11,7 @@ function a({ classNames: e, styleElements: t }, n) {
|
|
|
11
11
|
//#region src/react/boxComponent.ts
|
|
12
12
|
var o = parseInt(e.version, 10) >= 19;
|
|
13
13
|
function s(e, r) {
|
|
14
|
-
let i = o ? (t) => e(
|
|
14
|
+
let i = o ? ({ ref: t, ...n }) => e(n, t ?? null) : t(e), a = n(i);
|
|
15
15
|
return i.displayName = r, a.displayName = r, a;
|
|
16
16
|
}
|
|
17
17
|
//#endregion
|