@uipath/apollo-wind 2.44.0 → 2.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,6 +19,18 @@ npm install @uipath/apollo-wind
19
19
 
20
20
  **Note:** This package is published to both npm and GitHub Package Registry. External users will automatically pull from npm. Internal UiPath users with `.npmrc` configured will automatically pull from GitHub Package Registry.
21
21
 
22
+ **Fonts:** the Future themes (`.future-light` / `.future-dark`) point
23
+ `--font-sans` at Inter and the bundled Noto families, but `tailwind.css` ships
24
+ no `@font-face`. Import the font stylesheet once at your app entry, or those
25
+ tokens fall back to the OS font:
26
+
27
+ ```tsx
28
+ import "@uipath/apollo-wind/fonts/font.css";
29
+ ```
30
+
31
+ Classic themes keep Tailwind's default `--font-sans` and need no font import.
32
+ Apps that already import `@uipath/apollo-react/core/fonts/font.css` are covered.
33
+
22
34
  **Option 1: Zero Config** (Recommended for quick starts)
23
35
 
24
36
  ```tsx
@@ -36,7 +36,7 @@ const index_cjs_namespaceObject = require("../../lib/index.cjs");
36
36
  const FormField = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ children, className, ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
37
37
  ref: ref,
38
38
  "data-slot": "form-field",
39
- className: (0, index_cjs_namespaceObject.cn)('grid gap-1.5', className),
39
+ className: (0, index_cjs_namespaceObject.cn)('grid grid-cols-[minmax(0,1fr)] gap-1.5', className),
40
40
  ...props,
41
41
  children: children
42
42
  }));
@@ -6,6 +6,14 @@ export type FormFieldProps = React.ComponentPropsWithoutRef<'div'>;
6
6
  *
7
7
  * These parts are presentational and hold no form state, so they compose the
8
8
  * same way inside a metadata-driven form as they do in hand-built panels.
9
+ *
10
+ * The single column is pinned to `minmax(0, 1fr)` rather than left implicit.
11
+ * An implicit `auto` track floors at its widest child's min-content, and a
12
+ * control that ellipsizes is `white-space: nowrap`, so its min-content is the
13
+ * whole string: the field would push past a width-constrained host instead of
14
+ * truncating. A `1fr` track still resolves to max-content when the host width
15
+ * is indefinite, so shrink-to-fit hosts are unaffected. `className` is merged
16
+ * last, so a consumer can still override with `grid-cols-2` or similar.
9
17
  */
10
18
  declare const FormField: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
19
  export interface FormFieldLabelProps extends React.ComponentPropsWithoutRef<typeof Label> {
@@ -5,7 +5,7 @@ import { cn } from "../../lib/index.js";
5
5
  const FormField = /*#__PURE__*/ forwardRef(({ children, className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
6
6
  ref: ref,
7
7
  "data-slot": "form-field",
8
- className: cn('grid gap-1.5', className),
8
+ className: cn('grid grid-cols-[minmax(0,1fr)] gap-1.5', className),
9
9
  ...props,
10
10
  children: children
11
11
  }));
@@ -90,7 +90,7 @@ var __webpack_modules__ = {
90
90
  "./input" (module) {
91
91
  module.exports = require("./input.cjs");
92
92
  },
93
- "./label" (module) {
93
+ "@/components/ui/label" (module) {
94
94
  module.exports = require("./label.cjs");
95
95
  },
96
96
  "./layout" (module) {
@@ -105,10 +105,10 @@ var __webpack_modules__ = {
105
105
  "./pagination" (module) {
106
106
  module.exports = require("./pagination.cjs");
107
107
  },
108
- "@/components/ui/popover" (module) {
108
+ "./popover" (module) {
109
109
  module.exports = require("./popover.cjs");
110
110
  },
111
- "./portal-container" (module) {
111
+ "@/components/ui/portal-container" (module) {
112
112
  module.exports = require("./portal-container.cjs");
113
113
  },
114
114
  "./progress" (module) {
@@ -159,13 +159,13 @@ var __webpack_modules__ = {
159
159
  "./switch" (module) {
160
160
  module.exports = require("./switch.cjs");
161
161
  },
162
- "@/components/ui/table" (module) {
162
+ "./table" (module) {
163
163
  module.exports = require("./table.cjs");
164
164
  },
165
165
  "./tabs" (module) {
166
166
  module.exports = require("./tabs.cjs");
167
167
  },
168
- "./textarea" (module) {
168
+ "@/components/ui/textarea" (module) {
169
169
  module.exports = require("./textarea.cjs");
170
170
  },
171
171
  "./toggle-group" (module) {
@@ -440,7 +440,7 @@ var __webpack_exports__ = {};
440
440
  "default"
441
441
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_input_group__rspack_import_29[__rspack_import_key];
442
442
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
443
- var _label__rspack_import_30 = __webpack_require__("./label");
443
+ var _label__rspack_import_30 = __webpack_require__("@/components/ui/label");
444
444
  var __rspack_reexport = {};
445
445
  for(const __rspack_import_key in _label__rspack_import_30)if ([
446
446
  "TreeView",
@@ -475,14 +475,14 @@ var __webpack_exports__ = {};
475
475
  "default"
476
476
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_pagination__rspack_import_34[__rspack_import_key];
477
477
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
478
- var _popover__rspack_import_35 = __webpack_require__("@/components/ui/popover");
478
+ var _popover__rspack_import_35 = __webpack_require__("./popover");
479
479
  var __rspack_reexport = {};
480
480
  for(const __rspack_import_key in _popover__rspack_import_35)if ([
481
481
  "TreeView",
482
482
  "default"
483
483
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_popover__rspack_import_35[__rspack_import_key];
484
484
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
485
- var _portal_container__rspack_import_36 = __webpack_require__("./portal-container");
485
+ var _portal_container__rspack_import_36 = __webpack_require__("@/components/ui/portal-container");
486
486
  var __rspack_reexport = {};
487
487
  for(const __rspack_import_key in _portal_container__rspack_import_36)if ([
488
488
  "TreeView",
@@ -601,7 +601,7 @@ var __webpack_exports__ = {};
601
601
  "default"
602
602
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_switch__rspack_import_52[__rspack_import_key];
603
603
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
604
- var _table__rspack_import_53 = __webpack_require__("@/components/ui/table");
604
+ var _table__rspack_import_53 = __webpack_require__("./table");
605
605
  var __rspack_reexport = {};
606
606
  for(const __rspack_import_key in _table__rspack_import_53)if ([
607
607
  "TreeView",
@@ -615,7 +615,7 @@ var __webpack_exports__ = {};
615
615
  "default"
616
616
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_tabs__rspack_import_54[__rspack_import_key];
617
617
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
618
- var _textarea__rspack_import_55 = __webpack_require__("./textarea");
618
+ var _textarea__rspack_import_55 = __webpack_require__("@/components/ui/textarea");
619
619
  var __rspack_reexport = {};
620
620
  for(const __rspack_import_key in _textarea__rspack_import_55)if ([
621
621
  "TreeView",
@@ -32,7 +32,7 @@ const react_label_namespaceObject = require("@radix-ui/react-label");
32
32
  const external_class_variance_authority_namespaceObject = require("class-variance-authority");
33
33
  const external_react_namespaceObject = require("react");
34
34
  const index_cjs_namespaceObject = require("../../lib/index.cjs");
35
- const labelVariants = (0, external_class_variance_authority_namespaceObject.cva)('text-xs peer-disabled:cursor-not-allowed peer-disabled:opacity-70', {
35
+ const labelVariants = (0, external_class_variance_authority_namespaceObject.cva)('inline-block text-xs peer-disabled:cursor-not-allowed peer-disabled:opacity-70', {
36
36
  variants: {
37
37
  variant: {
38
38
  default: 'font-medium text-foreground',
@@ -14,6 +14,15 @@ export type LabelProps = React.ComponentPropsWithoutRef<typeof LabelPrimitive.Ro
14
14
  * the label's inline run, so the ellipsis swallows it, and a clipped field name
15
15
  * is unreadable anyway.
16
16
  *
17
+ * Renders `inline-block` rather than the `<label>` default of `inline`.
18
+ * Vertical margins do nothing on an inline box, so under Tailwind v4, where
19
+ * `space-y-*` puts `margin-block-end` on every child but the last, the gap a
20
+ * `space-y-1.5` wrapper means to put under the label was silently dropped.
21
+ * `inline-block` keeps the label usable in inline flow, which `block` would
22
+ * not. As a grid or flex item the label is blockified anyway, so this changes
23
+ * nothing inside `FormField`, and a consumer needing another display passes
24
+ * one: `cn` merges `className` last.
25
+ *
17
26
  * `data-variant` exposes the variant so a container can restyle every label of
18
27
  * one kind at once rather than reaching for each slot by name. Target it as
19
28
  * `label[data-variant=default]`: callers rename `data-slot`, and `data-variant`
@@ -3,7 +3,7 @@ import { Root } from "@radix-ui/react-label";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { forwardRef } from "react";
5
5
  import { cn } from "../../lib/index.js";
6
- const labelVariants = cva('text-xs peer-disabled:cursor-not-allowed peer-disabled:opacity-70', {
6
+ const labelVariants = cva('inline-block text-xs peer-disabled:cursor-not-allowed peer-disabled:opacity-70', {
7
7
  variants: {
8
8
  variant: {
9
9
  default: 'font-medium text-foreground',
@@ -0,0 +1 @@
1
+ @import "@uipath/apollo-core/fonts/font.css";
@@ -30,11 +30,12 @@ __webpack_require__.d(__webpack_exports__, {
30
30
  letterSpacing: ()=>letterSpacing,
31
31
  lineHeight: ()=>lineHeight
32
32
  });
33
+ const SANS_STACK = "'Inter', 'noto-sans', 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans SC', 'Noto Sans TC', system-ui, sans-serif";
33
34
  const fontFamily = {
34
- base: "'Inter', system-ui, -apple-system, sans-serif",
35
+ base: SANS_STACK,
35
36
  monospace: "'JetBrains Mono', 'SF Mono', 'Fira Code', 'Fira Mono', Menlo, monospace",
36
- numeric: "'Inter', system-ui, -apple-system, sans-serif",
37
- sans: "'Inter', system-ui, -apple-system, sans-serif"
37
+ numeric: SANS_STACK,
38
+ sans: SANS_STACK
38
39
  };
39
40
  const fontSize = {
40
41
  xs: 12,
@@ -8,13 +8,17 @@
8
8
  */
9
9
  export declare const fontFamily: {
10
10
  /** Primary sans-serif stack — used for all UI text */
11
- readonly base: "'Inter', system-ui, -apple-system, sans-serif";
12
- /** Monospace stack — used for code, data, and technical content */
11
+ readonly base: string;
12
+ /**
13
+ * Monospace stack — used for code, data, and technical content.
14
+ * None of these ship with apollo-core: Storybook loads JetBrains Mono from
15
+ * the Google Fonts CDN, consumers resolve to an OS mono font.
16
+ */
13
17
  readonly monospace: "'JetBrains Mono', 'SF Mono', 'Fira Code', 'Fira Mono', Menlo, monospace";
14
18
  /** Numeric stack — used for tabular numbers and data displays */
15
- readonly numeric: "'Inter', system-ui, -apple-system, sans-serif";
19
+ readonly numeric: string;
16
20
  /** @deprecated Use `fontFamily.base` instead */
17
- readonly sans: "'Inter', system-ui, -apple-system, sans-serif";
21
+ readonly sans: string;
18
22
  };
19
23
  /**
20
24
  * Font size scale in pixels.
@@ -1,8 +1,9 @@
1
+ const SANS_STACK = "'Inter', 'noto-sans', 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans SC', 'Noto Sans TC', system-ui, sans-serif";
1
2
  const fontFamily = {
2
- base: "'Inter', system-ui, -apple-system, sans-serif",
3
+ base: SANS_STACK,
3
4
  monospace: "'JetBrains Mono', 'SF Mono', 'Fira Code', 'Fira Mono', Menlo, monospace",
4
- numeric: "'Inter', system-ui, -apple-system, sans-serif",
5
- sans: "'Inter', system-ui, -apple-system, sans-serif"
5
+ numeric: SANS_STACK,
6
+ sans: SANS_STACK
6
7
  };
7
8
  const fontSize = {
8
9
  xs: 12,
package/dist/styles.css CHANGED
@@ -1759,6 +1759,9 @@
1759
1759
  .grid-cols-12 {
1760
1760
  grid-template-columns: repeat(12, minmax(0, 1fr));
1761
1761
  }
1762
+ .grid-cols-\[minmax\(0\,1fr\)\] {
1763
+ grid-template-columns: minmax(0,1fr);
1764
+ }
1762
1765
  .grid-rows-2 {
1763
1766
  grid-template-rows: repeat(2, minmax(0, 1fr));
1764
1767
  }
@@ -9997,6 +10000,35 @@ body.future-dark, .future-dark, body.future-light, .future-light {
9997
10000
  --destructive: var(--color-red-500);
9998
10001
  --destructive-foreground: var(--color-zinc-50);
9999
10002
  --input: var(--ap-wind-border);
10003
+ --font-sans: Inter, noto-sans, "Noto Sans JP", "Noto Sans KR", "Noto Sans SC",
10004
+ "Noto Sans TC", system-ui, sans-serif;
10005
+ --font-normal: var(--font-sans);
10006
+ --font-title: var(--font-sans);
10007
+ --font-hero-bold-family: var(--font-sans);
10008
+ --font-hero-family: var(--font-sans);
10009
+ --font-header-1-bold-family: var(--font-sans);
10010
+ --font-header-1-family: var(--font-sans);
10011
+ --font-header-2-bold-family: var(--font-sans);
10012
+ --font-header-2-family: var(--font-sans);
10013
+ --font-header-3-bold-family: var(--font-sans);
10014
+ --font-header-3-family: var(--font-sans);
10015
+ --font-header-4-bold-family: var(--font-sans);
10016
+ --font-header-4-family: var(--font-sans);
10017
+ --font-l-bold-family: var(--font-sans);
10018
+ --font-l-family: var(--font-sans);
10019
+ --font-m-bold-family: var(--font-sans);
10020
+ --font-m-family: var(--font-sans);
10021
+ --font-link-family: var(--font-sans);
10022
+ --font-s-bold-family: var(--font-sans);
10023
+ --font-s-family: var(--font-sans);
10024
+ --font-xs-bold-family: var(--font-sans);
10025
+ --font-xs-family: var(--font-sans);
10026
+ --font-brand-h-4-family: var(--font-sans);
10027
+ --font-brand-l-family: var(--font-sans);
10028
+ --font-brand-m-family: var(--font-sans);
10029
+ }
10030
+ body.future-dark.future-dark, .future-dark.future-dark, body.future-light.future-light, .future-light.future-light {
10031
+ font-family: var(--font-sans);
10000
10032
  }
10001
10033
  body.future-dark, .future-dark {
10002
10034
  --gradient-1: linear-gradient(127deg, #3f3f47 25.94%, #27272a 74.06%);
package/dist/tailwind.css CHANGED
@@ -185,6 +185,44 @@ body.future-light, .future-light {
185
185
  --destructive: var(--color-red-500);
186
186
  --destructive-foreground: var(--color-zinc-50);
187
187
  --input: var(--ap-wind-border);
188
+
189
+ /* Typography: Inter, shipped by apollo-core. Neither Inter nor noto-sans
190
+ covers CJK, so the four bundled Noto CJK families are chained explicitly
191
+ to keep ja/ko/zh resolving. Mono tokens untouched. */
192
+ --font-sans: Inter, noto-sans, "Noto Sans JP", "Noto Sans KR", "Noto Sans SC",
193
+ "Noto Sans TC", system-ui, sans-serif;
194
+ --font-normal: var(--font-sans);
195
+ --font-title: var(--font-sans);
196
+ --font-hero-bold-family: var(--font-sans);
197
+ --font-hero-family: var(--font-sans);
198
+ --font-header-1-bold-family: var(--font-sans);
199
+ --font-header-1-family: var(--font-sans);
200
+ --font-header-2-bold-family: var(--font-sans);
201
+ --font-header-2-family: var(--font-sans);
202
+ --font-header-3-bold-family: var(--font-sans);
203
+ --font-header-3-family: var(--font-sans);
204
+ --font-header-4-bold-family: var(--font-sans);
205
+ --font-header-4-family: var(--font-sans);
206
+ --font-l-bold-family: var(--font-sans);
207
+ --font-l-family: var(--font-sans);
208
+ --font-m-bold-family: var(--font-sans);
209
+ --font-m-family: var(--font-sans);
210
+ --font-link-family: var(--font-sans);
211
+ --font-s-bold-family: var(--font-sans);
212
+ --font-s-family: var(--font-sans);
213
+ --font-xs-bold-family: var(--font-sans);
214
+ --font-xs-family: var(--font-sans);
215
+ --font-brand-h-4-family: var(--font-sans);
216
+ --font-brand-l-family: var(--font-sans);
217
+ --font-brand-m-family: var(--font-sans);
218
+ }
219
+
220
+ /* Preflight pins --default-font-family at :root, so the theme class must set
221
+ font-family itself. Class doubled to outrank apollo's legacy Angular bundle,
222
+ which injects `.apollo-design { font-family: noto-sans }` (0,1,0) at runtime. */
223
+ body.future-dark.future-dark, .future-dark.future-dark,
224
+ body.future-light.future-light, .future-light.future-light {
225
+ font-family: var(--font-sans);
188
226
  }
189
227
 
190
228
  /* ── Future gradients (theme-specific stops, no core counterpart yet) ────── */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/apollo-wind",
3
- "version": "2.44.0",
3
+ "version": "2.45.1",
4
4
  "description": "UiPath wind design system - A Tailwind CSS based React component library",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,6 +42,7 @@
42
42
  },
43
43
  "./styles.css": "./dist/styles.css",
44
44
  "./tailwind.css": "./dist/tailwind.css",
45
+ "./fonts/*": "./dist/fonts/*",
45
46
  "./tailwind": {
46
47
  "import": "./dist/tailwind.preset.js",
47
48
  "require": "./dist/tailwind.preset.cjs"
@@ -124,7 +125,7 @@
124
125
  "tailwindcss": "^4.1.17",
125
126
  "vaul": "^1.1.2",
126
127
  "zod": "^4.3.5",
127
- "@uipath/apollo-core": "5.13.1"
128
+ "@uipath/apollo-core": "5.14.0"
128
129
  },
129
130
  "devDependencies": {
130
131
  "@codemirror/lang-javascript": "^6.2.5",