@cmgfi/clear-ds 1.2.4 → 1.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/dist/index.d.ts CHANGED
@@ -333,6 +333,15 @@ export declare interface CalendarProps {
333
333
  * <p>Click anywhere to open.</p>
334
334
  * </Card>
335
335
  * ```
336
+ * @example
337
+ *
338
+ * ```tsx
339
+ * // Dark stat tile — for a dark dashboard band. Compose the stat content.
340
+ * <Card tone="dark">
341
+ * <span className="label">Prospect</span>
342
+ * <span className="value">97,686</span>
343
+ * </Card>
344
+ * ```
336
345
  */
337
346
  export declare const Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>>;
338
347
 
@@ -348,6 +357,14 @@ export declare interface CardProps {
348
357
  footer?: React.ReactNode;
349
358
  /** Card body content. Accepts any ReactNode. */
350
359
  children?: React.ReactNode;
360
+ /**
361
+ * Surface tone.
362
+ * - `'light'` (default): white surface with navy text.
363
+ * - `'dark'`: dark navy surface with light text — for cards placed on a
364
+ * dark or saturated dashboard band. Built-in title/subtitle/content text
365
+ * colors flip to readable light values; compose your own content inside.
366
+ */
367
+ tone?: 'light' | 'dark';
351
368
  /**
352
369
  * Makes the entire card interactive — adds a pointer cursor and a subtle
353
370
  * shadow lift on hover. Pass a handler to opt into this mode.
@@ -1891,29 +1908,6 @@ export declare interface RuleFilterValue {
1891
1908
  rules: FilterRule[];
1892
1909
  }
1893
1910
 
1894
- /**
1895
- * Select — Clear Design System
1896
- *
1897
- * A single-value dropdown. Selecting an option closes the dropdown immediately.
1898
- * Supports an optional live-search filter, three sizes, and full state coverage:
1899
- * idle, hover, active/open, filled, invalid, and disabled.
1900
- *
1901
- * @example
1902
- *
1903
- * ```tsx
1904
- * <Select options={opts} value={val} onChange={setVal} label="Loan type" />
1905
- * ```
1906
- * @example
1907
- *
1908
- * ```tsx
1909
- * <Select options={opts} value={val} onChange={setVal} required invalid helperText="Required." />
1910
- * ```
1911
- * @example
1912
- *
1913
- * ```tsx
1914
- * <Select options={opts} value={val} onChange={setVal} filter size="lg" />
1915
- * ```
1916
- */
1917
1911
  export declare const Select: ForwardRefExoticComponent<SelectProps & RefAttributes<HTMLDivElement>>;
1918
1912
 
1919
1913
  /**
@@ -2042,6 +2036,8 @@ export declare interface SelectProps {
2042
2036
  filterPlaceholder?: string;
2043
2037
  /** Size variant. sm = 10px / md = 12px (default) / lg = 14px. */
2044
2038
  size?: 'sm' | 'md' | 'lg';
2039
+ /** Icon rendered on the left side of the trigger. Pass `true` for the default search icon, or any React node for a custom icon. */
2040
+ leadingIcon?: React.ReactNode | boolean;
2045
2041
  className?: string;
2046
2042
  style?: React.CSSProperties;
2047
2043
  }
@@ -2255,12 +2251,14 @@ export declare interface TabItem {
2255
2251
  * Tabs — Clear Design System
2256
2252
  *
2257
2253
  * Standard underline-style tab strip. Fully controlled — the parent owns
2258
- * which tab is active. Two variants:
2254
+ * which tab is active. Three variants:
2259
2255
  * - `'panel'` (default): renders the active tab's `content` below the strip.
2260
2256
  * Use for sub-section switching inside a page.
2261
2257
  * - `'nav'`: page-level navigation with larger padding/font; the active
2262
2258
  * tab's `content` is not rendered (each tab is a route/page). Renders
2263
2259
  * as `<nav>` for the right semantics.
2260
+ * - `'pills'`: pill-shaped segmented switcher on a dark/colored host surface.
2261
+ * Strip-only (no content panel); `count` renders as a red circular badge.
2264
2262
  *
2265
2263
  * @example
2266
2264
  *
@@ -2291,6 +2289,22 @@ export declare interface TabItem {
2291
2289
  * onChange={setPage}
2292
2290
  * />
2293
2291
  * ```
2292
+ * @example
2293
+ *
2294
+ * ```tsx
2295
+ * // Pills variant — segmented view switcher on a dark/colored band.
2296
+ * <Tabs
2297
+ * variant="pills"
2298
+ * tabs={[
2299
+ * { id: 'overview', label: 'Overview' },
2300
+ * { id: 'processing', label: 'To Processing' },
2301
+ * { id: 'closing', label: 'To Closing' },
2302
+ * { id: 'reminders', label: 'Reminders', count: 20 },
2303
+ * ]}
2304
+ * activeTab={view}
2305
+ * onChange={setView}
2306
+ * />
2307
+ * ```
2294
2308
  */
2295
2309
  export declare const Tabs: ForwardRefExoticComponent<TabsProps & RefAttributes<HTMLDivElement>>;
2296
2310
 
@@ -2307,40 +2321,16 @@ export declare interface TabsProps {
2307
2321
  * - `'nav'`: navigation-only strip with larger padding/font; the active
2308
2322
  * tab's `content` is **not** rendered (each tab represents a page or
2309
2323
  * route). Renders as `<nav>` for the right semantics.
2324
+ * - `'pills'`: pill-shaped segmented switcher on a dark/colored host
2325
+ * surface — translucent glass track, a solid light pill behind the active
2326
+ * segment, and `count` rendered as a red circular badge. Strip-only (no
2327
+ * content panel). Designed to sit on a saturated or dark background.
2310
2328
  */
2311
- variant?: 'panel' | 'nav';
2329
+ variant?: 'panel' | 'nav' | 'pills';
2312
2330
  className?: string;
2313
2331
  style?: React.CSSProperties;
2314
2332
  }
2315
2333
 
2316
- /**
2317
- * TextArea — Clear Design System
2318
- *
2319
- * A multi-line text input with label, helper text, character counter (when
2320
- * `maxLength` is set), and full state coverage: default, hover, focus, filled,
2321
- * invalid, and disabled. Supports optional auto-grow behaviour.
2322
- *
2323
- * @example
2324
- *
2325
- * ```tsx
2326
- * <TextArea label="Loan notes" placeholder="Enter notes…" rows={4} />
2327
- * ```
2328
- * @example
2329
- *
2330
- * ```tsx
2331
- * <TextArea label="Comments" maxLength={500} />
2332
- * ```
2333
- * @example
2334
- *
2335
- * ```tsx
2336
- * <TextArea label="Description" autoGrow />
2337
- * ```
2338
- * @example
2339
- *
2340
- * ```tsx
2341
- * <TextArea label="Notes" invalid helperText="This field is required." />
2342
- * ```
2343
- */
2344
2334
  export declare const TextArea: ForwardRefExoticComponent<TextAreaProps & RefAttributes<HTMLTextAreaElement>>;
2345
2335
 
2346
2336
  export declare interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'children'> {
@@ -2363,6 +2353,8 @@ export declare interface TextAreaProps extends Omit<React.TextareaHTMLAttributes
2363
2353
  autoGrow?: boolean;
2364
2354
  /** Controls where the character counter renders. 'inside' pins it to the bottom-right of the field; 'outside' (default) places it below the field in the bottom row. */
2365
2355
  counterPlacement?: 'inside' | 'outside';
2356
+ /** Icon rendered on the left side of the field, top-aligned. Pass `true` for the default pencil icon, or any React node for a custom icon. */
2357
+ leadingIcon?: React.ReactNode | boolean;
2366
2358
  }
2367
2359
 
2368
2360
  /**