@jobber/components 6.103.2-JOB-140609-8386817.45 → 6.103.3

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 (79) hide show
  1. package/dist/Autocomplete/Autocomplete.types.d.ts +1 -12
  2. package/dist/Autocomplete/index.cjs +13 -1
  3. package/dist/Autocomplete/index.mjs +13 -1
  4. package/dist/Checkbox/Checkbox.types.d.ts +9 -2
  5. package/dist/Checkbox/index.cjs +2 -4
  6. package/dist/Checkbox/index.mjs +2 -4
  7. package/dist/Chips/InternalChipDismissible/hooks/index.cjs +2 -2
  8. package/dist/Chips/InternalChipDismissible/hooks/index.mjs +2 -2
  9. package/dist/Chips/InternalChipDismissible/index.cjs +2 -2
  10. package/dist/Chips/InternalChipDismissible/index.mjs +2 -2
  11. package/dist/Chips/index.cjs +2 -2
  12. package/dist/Chips/index.mjs +2 -2
  13. package/dist/DataList/components/DataListSearch/index.cjs +12 -1
  14. package/dist/DataList/components/DataListSearch/index.mjs +12 -1
  15. package/dist/DataList/index.cjs +8 -0
  16. package/dist/DataList/index.mjs +8 -0
  17. package/dist/DataTable/index.cjs +2 -2
  18. package/dist/DataTable/index.mjs +2 -2
  19. package/dist/DatePicker/index.cjs +2 -2
  20. package/dist/DatePicker/index.mjs +2 -2
  21. package/dist/FormField/FormFieldTypes.d.ts +2 -0
  22. package/dist/FormField/hooks/useFormFieldWrapperStyles.d.ts +2 -7
  23. package/dist/FormField-cjs.js +6 -1
  24. package/dist/FormField-es.js +6 -2
  25. package/dist/InputDate/index.cjs +9 -5
  26. package/dist/InputDate/index.mjs +9 -5
  27. package/dist/InputDate/useInputDateActivatorActions.d.ts +8 -4
  28. package/dist/InputEmail/InputEmail.types.d.ts +20 -12
  29. package/dist/InputEmail/hooks/useInputEmailActions.d.ts +1 -1
  30. package/dist/InputEmail/hooks/useInputEmailFormField.d.ts +32 -0
  31. package/dist/InputEmail/index.cjs +44 -8
  32. package/dist/InputEmail/index.mjs +44 -8
  33. package/dist/InputNumber/InputNumber.rebuilt.types.d.ts +3 -20
  34. package/dist/InputNumber/index.cjs +3 -3
  35. package/dist/InputNumber/index.mjs +3 -3
  36. package/dist/InputPhoneNumber/InputPhoneNumber.types.d.ts +27 -13
  37. package/dist/InputPhoneNumber/hooks/useInputPhoneActions.d.ts +1 -1
  38. package/dist/InputPhoneNumber/hooks/useInputPhoneFormField.d.ts +71 -0
  39. package/dist/InputPhoneNumber/index.cjs +34 -17
  40. package/dist/InputPhoneNumber/index.mjs +34 -17
  41. package/dist/InputText/InputText.types.d.ts +24 -24
  42. package/dist/InputText/index.cjs +54 -54
  43. package/dist/InputText/index.mjs +55 -55
  44. package/dist/InputText/useInputTextActions.d.ts +1 -1
  45. package/dist/InputText/useInputTextFormField.d.ts +352 -0
  46. package/dist/InputTime/InputTime.rebuilt.d.ts +1 -1
  47. package/dist/InputTime/InputTime.types.d.ts +1 -21
  48. package/dist/InputTime/index.cjs +33 -63
  49. package/dist/InputTime/index.d.ts +1 -1
  50. package/dist/InputTime/index.mjs +36 -66
  51. package/dist/List/index.cjs +2 -2
  52. package/dist/List/index.mjs +2 -2
  53. package/dist/RecurringSelect/index.cjs +2 -2
  54. package/dist/RecurringSelect/index.mjs +2 -2
  55. package/dist/Select/Select.rebuilt.d.ts +1 -1
  56. package/dist/Select/Select.types.d.ts +1 -14
  57. package/dist/Select/hooks/useSelectActions.d.ts +5 -5
  58. package/dist/Select/hooks/useSelectFormField.d.ts +34 -0
  59. package/dist/Select/index.cjs +41 -28
  60. package/dist/Select/index.d.ts +5 -7
  61. package/dist/Select/index.mjs +43 -30
  62. package/dist/Tabs-es.js +1 -1
  63. package/dist/_baseEach-cjs.js +12 -12
  64. package/dist/_baseEach-es.js +1 -1
  65. package/dist/_baseFlatten-cjs.js +2 -2
  66. package/dist/_baseFlatten-es.js +1 -1
  67. package/dist/{_getAllKeys-cjs.js → _baseGet-cjs.js} +181 -181
  68. package/dist/{_getAllKeys-es.js → _baseGet-es.js} +182 -182
  69. package/dist/debounce-es.js +1 -1
  70. package/dist/index.cjs +2 -2
  71. package/dist/index.mjs +2 -2
  72. package/dist/omit-cjs.js +14 -14
  73. package/dist/omit-es.js +1 -1
  74. package/dist/sharedHelpers/types.d.ts +0 -235
  75. package/dist/styles.css +18 -20
  76. package/dist/useScrollToActive-cjs.js +3 -3
  77. package/dist/useScrollToActive-es.js +2 -2
  78. package/package.json +2 -2
  79. package/dist/InputTime/hooks/useInputTimeActions.d.ts +0 -16
@@ -1,8 +1,3 @@
1
- import type { AriaAttributes, ReactNode } from "react";
2
- import type React from "react";
3
- import type { XOR } from "ts-xor";
4
- import type { Clearable } from "@jobber/hooks";
5
- import type { IconNames } from "../Icon";
6
1
  export interface CommonAtlantisProps {
7
2
  /** Standard HTML data attributes. Accepts anything in a {{"data-key":"value"}} format. */
8
3
  dataAttributes?: {
@@ -15,238 +10,8 @@ export interface CommonAtlantisProps {
15
10
  /** Standard HTML id attribute. */
16
11
  id?: string;
17
12
  }
18
- /**
19
- * Core ARIA attributes for input elements.
20
- * Uses camelCase naming for consistency with React props pattern.
21
- * Based on React's canonical ARIA type definitions.
22
- */
23
- export interface AriaInputProps {
24
- /**
25
- * Defines a string value that labels the current element.
26
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-label}
27
- */
28
- readonly ariaLabel?: AriaAttributes["aria-label"];
29
- /**
30
- * Identifies the element (or elements) that labels the current element.
31
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-labelledby}
32
- */
33
- readonly ariaLabelledBy?: AriaAttributes["aria-labelledby"];
34
- /**
35
- * Identifies the element (or elements) that describes the object.
36
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-describedby}
37
- */
38
- readonly ariaDescribedBy?: AriaAttributes["aria-describedby"];
39
- /**
40
- * Identifies the element (or elements) that provide a detailed, extended description.
41
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-details}
42
- */
43
- readonly ariaDetails?: AriaAttributes["aria-details"];
44
- /**
45
- * ID of the currently active descendant element.
46
- * Used for composite widgets like combobox or listbox.
47
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-activedescendant}
48
- */
49
- readonly ariaActiveDescendant?: AriaAttributes["aria-activedescendant"];
50
- /**
51
- * Indicates the element that controls the current element.
52
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-controls}
53
- */
54
- readonly ariaControls?: AriaAttributes["aria-controls"];
55
- /**
56
- * Indicates whether the element is expanded or collapsed.
57
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-expanded}
58
- */
59
- readonly ariaExpanded?: AriaAttributes["aria-expanded"];
60
- /**
61
- * Indicates the type of autocomplete interaction.
62
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-autocomplete}
63
- */
64
- readonly ariaAutocomplete?: AriaAttributes["aria-autocomplete"];
65
- /**
66
- * Indicates that user input is required before form submission.
67
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-required}
68
- */
69
- readonly ariaRequired?: AriaAttributes["aria-required"];
70
- }
71
- /**
72
- * Focus event handlers for input elements.
73
- * Generic interface that can be specialized for different element types.
74
- */
75
- export interface FocusEvents<Target = HTMLElement> {
76
- /**
77
- * Focus event handler.
78
- */
79
- readonly onFocus?: (event: React.FocusEvent<Target>) => void;
80
- /**
81
- * Blur event handler.
82
- */
83
- readonly onBlur?: (event: React.FocusEvent<Target>) => void;
84
- }
85
- /**
86
- * Keyboard event handlers for input elements.
87
- * Generic interface that can be specialized for different element types.
88
- */
89
- export interface KeyboardEvents<Target = HTMLElement> {
90
- /**
91
- * Key down event handler.
92
- */
93
- readonly onKeyDown?: (event: React.KeyboardEvent<Target>) => void;
94
- /**
95
- * Key up event handler.
96
- */
97
- readonly onKeyUp?: (event: React.KeyboardEvent<Target>) => void;
98
- }
99
- /**
100
- * Curated set of HTML input attributes for rebuilt input components.
101
- * This provides a whitelist of standard HTML/React props we want to support,
102
- * avoiding the issues of extending React.InputHTMLAttributes directly.
103
- * Note: Event handlers and ARIA attributes are separate - use FocusEvents, KeyboardEvents, and AriaInputProps.
104
- */
105
- export interface HTMLInputBaseProps extends AriaInputProps {
106
- /**
107
- * The unique identifier for the input element.
108
- */
109
- readonly id?: string;
110
- /**
111
- * The name attribute for the input element.
112
- */
113
- readonly name?: string;
114
- /**
115
- * Whether the input is disabled.
116
- */
117
- readonly disabled?: boolean;
118
- /**
119
- * Whether the input is read-only (HTML standard casing).
120
- */
121
- readonly readOnly?: boolean;
122
- /**
123
- * Whether the input should be auto-focused (React casing).
124
- */
125
- readonly autoFocus?: boolean;
126
- /**
127
- * Autocomplete behavior for the input (React casing, string values only).
128
- * Use standard HTML autocomplete values or "on"/"off".
129
- */
130
- readonly autoComplete?: string;
131
- /**
132
- * Validation pattern (regex) for the input.
133
- */
134
- readonly pattern?: string;
135
- /**
136
- * Input mode hint for virtual keyboards.
137
- */
138
- readonly inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
139
- /**
140
- * Role attribute for accessibility.
141
- */
142
- readonly role?: string;
143
- /**
144
- * Tab index for keyboard navigation.
145
- */
146
- readonly tabIndex?: number;
147
- }
148
- /**
149
- * Numeric/date constraint props for inputs that support min/max values.
150
- * Only extend this for input types where these make semantic sense (number, date, range, etc.).
151
- */
152
- export interface InputConstraintProps {
153
- /**
154
- * Maximum numerical or date value.
155
- */
156
- readonly max?: number | string;
157
- /**
158
- * Minimum numerical or date value.
159
- */
160
- readonly min?: number | string;
161
- }
162
- /**
163
- * Character length constraint for inputs.
164
- * Only extend this for text-based inputs where character limits make sense.
165
- */
166
- export interface InputLengthConstraint {
167
- /**
168
- * Maximum character length for the input.
169
- * Note: This affects both HTML validation AND visual width of the component.
170
- * Future work will separate these concerns.
171
- */
172
- readonly maxLength?: number;
173
- }
174
- export interface Affix {
175
- readonly label?: string;
176
- readonly icon?: IconNames;
177
- }
178
- interface BaseSuffix extends Affix {
179
- readonly icon: IconNames;
180
- onClick?(): void;
181
- }
182
- export interface Suffix extends BaseSuffix {
183
- onClick(): void;
184
- readonly ariaLabel: string;
185
- }
186
- /**
187
- * Common props shared across all rebuilt input components.
188
- * These are Atlantis-specific features not part of standard HTML inputs.
189
- */
190
- export interface RebuiltInputCommonProps {
191
- /**
192
- * Text that appears inside the input when empty and floats above the value
193
- * as a mini label once the user enters a value.
194
- * When showMiniLabel is false, this text only serves as a standard placeholder and
195
- * disappears when the user types.
196
- */
197
- readonly placeholder?: string;
198
- /**
199
- * Error message to display. This also highlights the field red.
200
- */
201
- readonly error?: string;
202
- /**
203
- * Highlights the field red to indicate an error.
204
- */
205
- readonly invalid?: boolean;
206
- /**
207
- * Show a spinner to indicate loading.
208
- */
209
- readonly loading?: boolean;
210
- /**
211
- * Add a clear action on the input that clears the value.
212
- */
213
- readonly clearable?: Clearable;
214
- /**
215
- * Adjusts the interface to either have small or large spacing.
216
- */
217
- readonly size?: "small" | "large";
218
- /**
219
- * Adjusts the form field to go inline with content.
220
- */
221
- readonly inline?: boolean;
222
- /**
223
- * Determines the alignment of the text inside the input.
224
- */
225
- readonly align?: "center" | "right";
226
- /**
227
- * Adds a prefix label and icon to the field.
228
- */
229
- readonly prefix?: Affix;
230
- /**
231
- * Adds a suffix label and icon with an optional action to the field.
232
- */
233
- readonly suffix?: XOR<Affix, Suffix>;
234
- /**
235
- * Further description of the input, can be used for a hint.
236
- */
237
- readonly description?: ReactNode;
238
- /**
239
- * Children elements to render inside the component.
240
- */
241
- readonly children?: ReactNode;
242
- /**
243
- * Version 2 is highly experimental. Avoid using it unless you have talked with Atlantis first.
244
- */
245
- readonly version: 2;
246
- }
247
13
  /** Represents a day of the week as a number where 0 = Sunday, 1 = Monday, etc. */
248
14
  export type DayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6;
249
15
  export type CommonAllowedElements = "section" | "p" | "article" | "ul" | "li" | "div" | "span" | "dl" | "dd" | "dt";
250
16
  export type Spaces = "none" | "minuscule" | "slim" | "smallest" | "smaller" | "small" | "base" | "large" | "larger" | "largest" | "extravagant";
251
17
  export type GapSpacing = Spaces | (string & NonNullable<unknown>);
252
- export {};
package/dist/styles.css CHANGED
@@ -6401,10 +6401,9 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
6401
6401
  -webkit-transform: translateY(0) scale(1);
6402
6402
  transform: translateY(0) scale(1);
6403
6403
  }
6404
- .-hmXAsAfH9U- {
6405
6404
 
6406
6405
  /* options */
6407
- option {
6406
+ .-hmXAsAfH9U- option {
6408
6407
  padding: 4px 0;
6409
6408
  padding: var(--space-smaller) 0;
6410
6409
  color: hsl(198, 35%, 21%);
@@ -6414,16 +6413,16 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
6414
6413
  cursor: pointer;
6415
6414
  }
6416
6415
 
6417
- option:hover,
6418
- option:focus,
6419
- option:focus-visible,
6420
- option:checked {
6416
+ .-hmXAsAfH9U- option:hover,
6417
+ .-hmXAsAfH9U- option:focus,
6418
+ .-hmXAsAfH9U- option:focus-visible,
6419
+ .-hmXAsAfH9U- option:checked {
6421
6420
  background-color: hsl(53, 21%, 93%);
6422
6421
  background-color: var(--color-surface--hover);
6423
6422
  }
6424
6423
 
6425
6424
  /* optgroup headers */
6426
- optgroup {
6425
+ .-hmXAsAfH9U- optgroup {
6427
6426
  padding: 8px 0 0 0;
6428
6427
  padding: var(--space-small) 0 0 0;
6429
6428
  color: hsl(197, 90%, 12%);
@@ -6438,36 +6437,35 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
6438
6437
  }
6439
6438
 
6440
6439
  /* Divider directly under the group label */
6441
- optgroup option:first-child {
6440
+ .-hmXAsAfH9U- optgroup option:first-child {
6442
6441
  border-top: 1px solid hsl(200, 13%, 87%);
6443
6442
  border-top: var(--border-base) solid var(--color-border);
6444
6443
  }
6445
6444
 
6446
6445
  /* Disabled groups and their options */
6447
- optgroup[disabled] {
6446
+ .-hmXAsAfH9U- optgroup[disabled] {
6448
6447
  color: hsl(0, 0%, 58%);
6449
6448
  color: var(--color-disabled);
6450
6449
  }
6451
- optgroup[disabled] option,
6452
- option[disabled] {
6450
+ .-hmXAsAfH9U- optgroup[disabled] option,
6451
+ .-hmXAsAfH9U- option[disabled] {
6453
6452
  color: hsl(0, 0%, 58%);
6454
6453
  color: var(--color-disabled);
6455
6454
  cursor: default;
6456
6455
  }
6457
6456
 
6458
- optgroup[disabled] option:focus,
6459
- optgroup[disabled] option:focus-visible,
6460
- optgroup[disabled] option:checked,
6461
- optgroup[disabled] option:hover,
6462
- option[disabled]:focus,
6463
- option[disabled]:focus-visible,
6464
- option[disabled]:checked,
6465
- option[disabled]:hover {
6457
+ .-hmXAsAfH9U- optgroup[disabled] option:focus,
6458
+ .-hmXAsAfH9U- optgroup[disabled] option:focus-visible,
6459
+ .-hmXAsAfH9U- optgroup[disabled] option:checked,
6460
+ .-hmXAsAfH9U- optgroup[disabled] option:hover,
6461
+ .-hmXAsAfH9U- option[disabled]:focus,
6462
+ .-hmXAsAfH9U- option[disabled]:focus-visible,
6463
+ .-hmXAsAfH9U- option[disabled]:checked,
6464
+ .-hmXAsAfH9U- option[disabled]:hover {
6466
6465
  background-color: transparent;
6467
6466
  }
6468
6467
 
6469
6468
  /* Animate the chevron rotation for the provided postfix class */
6470
- }
6471
6469
  .-hmXAsAfH9U- + ._5ST4c1fXDYU- svg {
6472
6470
  transition: -webkit-transform 100ms;
6473
6471
  transition: -webkit-transform var(--timing-quick);
@@ -3,7 +3,7 @@
3
3
  var React = require('react');
4
4
  var _commonjsHelpers = require('./_commonjsHelpers-cjs.js');
5
5
  var _baseFlatten = require('./_baseFlatten-cjs.js');
6
- var _getAllKeys = require('./_getAllKeys-cjs.js');
6
+ var _baseGet = require('./_baseGet-cjs.js');
7
7
  var _baseEach = require('./_baseEach-cjs.js');
8
8
  var isTypedArray = require('./isTypedArray-cjs.js');
9
9
  var isSymbol$1 = require('./isSymbol-cjs.js');
@@ -148,8 +148,8 @@ function compareMultiple$1(object, other, orders) {
148
148
 
149
149
  var _compareMultiple = compareMultiple$1;
150
150
 
151
- var arrayMap = _getAllKeys._arrayMap,
152
- baseGet = _getAllKeys._baseGet,
151
+ var arrayMap = _baseGet._arrayMap,
152
+ baseGet = _baseGet._baseGet,
153
153
  baseIteratee = _baseEach._baseIteratee,
154
154
  baseMap = _baseMap,
155
155
  baseSortBy = _baseSortBy,
@@ -1,14 +1,14 @@
1
1
  import React__default, { useState, useId, useEffect, useRef } from 'react';
2
2
  import { g as getDefaultExportFromCjs } from './_commonjsHelpers-es.js';
3
3
  import { _ as _baseFlatten } from './_baseFlatten-es.js';
4
- import { a as _arrayMap, b as _baseGet } from './_getAllKeys-es.js';
4
+ import { a as _arrayMap, b as _baseGet } from './_baseGet-es.js';
5
5
  import { _ as _baseEach, a as _baseIteratee } from './_baseEach-es.js';
6
6
  import { b as isArrayLike_1, k as _baseUnary, a as isArray_1 } from './isTypedArray-es.js';
7
7
  import { i as isSymbol_1 } from './isSymbol-es.js';
8
8
  import { i as identity_1 } from './identity-es.js';
9
9
  import { _ as _baseRest, a as _isIterateeCall } from './_isIterateeCall-es.js';
10
10
  import { useLiveAnnounce } from '@jobber/hooks';
11
- import { a as debounce } from './debounce-es.js';
11
+ import { d as debounce } from './debounce-es.js';
12
12
  import { I as Icon } from './Icon-es.js';
13
13
  import { u as useFloating, o as offset, f as flip, c as size, b as autoUpdate } from './floating-ui.react-es.js';
14
14
  import { c as calculateMaxHeight } from './maxHeight-es.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "6.103.2-JOB-140609-8386817.45+8386817c4",
3
+ "version": "6.103.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -538,5 +538,5 @@
538
538
  "> 1%",
539
539
  "IE 10"
540
540
  ],
541
- "gitHead": "8386817c443c0866d7979714a10f81c25b281158"
541
+ "gitHead": "06b9bc94eb94f53486ddc9c41a978731163a85b5"
542
542
  }
@@ -1,16 +0,0 @@
1
- import type { ChangeEvent, FocusEvent, KeyboardEvent } from "react";
2
- import type { InputTimeRebuiltProps } from "../InputTime.types";
3
- export interface UseInputTimeActionsProps extends Pick<InputTimeRebuiltProps, "onChange" | "onFocus" | "onBlur" | "onKeyDown"> {
4
- readonly value?: Date;
5
- readonly readOnly?: boolean;
6
- readonly disabled?: boolean;
7
- readonly inputRef?: React.RefObject<HTMLInputElement>;
8
- }
9
- export declare function useInputTimeActions({ onChange, value, inputRef, onFocus, onBlur, onKeyDown, }: UseInputTimeActionsProps): {
10
- handleChangeEvent: (event: ChangeEvent<HTMLInputElement>) => void;
11
- handleChange: (newValue: string) => void;
12
- handleBlur: (event: FocusEvent<HTMLInputElement>) => void;
13
- handleClear: () => void;
14
- handleFocus: (event: FocusEvent<HTMLInputElement>) => void;
15
- handleKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;
16
- };