handy-fluentui 0.1.0

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 (78) hide show
  1. package/README.md +681 -0
  2. package/dist/components/fui-button-panel.d.ts +13 -0
  3. package/dist/components/fui-button-panel.d.ts.map +1 -0
  4. package/dist/components/fui-image-carousell.d.ts +17 -0
  5. package/dist/components/fui-image-carousell.d.ts.map +1 -0
  6. package/dist/components/fui-tab.d.ts +29 -0
  7. package/dist/components/fui-tab.d.ts.map +1 -0
  8. package/dist/components/fui-table.d.ts +89 -0
  9. package/dist/components/fui-table.d.ts.map +1 -0
  10. package/dist/components/input-checkbox.d.ts +17 -0
  11. package/dist/components/input-checkbox.d.ts.map +1 -0
  12. package/dist/components/input-date.d.ts +27 -0
  13. package/dist/components/input-date.d.ts.map +1 -0
  14. package/dist/components/input-dropdown.d.ts +33 -0
  15. package/dist/components/input-dropdown.d.ts.map +1 -0
  16. package/dist/components/input-group.d.ts +25 -0
  17. package/dist/components/input-group.d.ts.map +1 -0
  18. package/dist/components/input-multi-lang.d.ts +35 -0
  19. package/dist/components/input-multi-lang.d.ts.map +1 -0
  20. package/dist/components/input-number.d.ts +39 -0
  21. package/dist/components/input-number.d.ts.map +1 -0
  22. package/dist/components/input-radio.d.ts +33 -0
  23. package/dist/components/input-radio.d.ts.map +1 -0
  24. package/dist/components/input-switch.d.ts +17 -0
  25. package/dist/components/input-switch.d.ts.map +1 -0
  26. package/dist/components/input-text.d.ts +19 -0
  27. package/dist/components/input-text.d.ts.map +1 -0
  28. package/dist/components/input-textarea.d.ts +20 -0
  29. package/dist/components/input-textarea.d.ts.map +1 -0
  30. package/dist/components/input-time.d.ts +31 -0
  31. package/dist/components/input-time.d.ts.map +1 -0
  32. package/dist/components/with-input-field.d.ts +49 -0
  33. package/dist/components/with-input-field.d.ts.map +1 -0
  34. package/dist/contexts/breadcrumb-context.d.ts +20 -0
  35. package/dist/contexts/breadcrumb-context.d.ts.map +1 -0
  36. package/dist/contexts/dialog-context.d.ts +28 -0
  37. package/dist/contexts/dialog-context.d.ts.map +1 -0
  38. package/dist/contexts/handy-fluent-ui-context.d.ts +48 -0
  39. package/dist/contexts/handy-fluent-ui-context.d.ts.map +1 -0
  40. package/dist/contexts/spinner-context.d.ts +19 -0
  41. package/dist/contexts/spinner-context.d.ts.map +1 -0
  42. package/dist/contexts/toast-context.d.ts +17 -0
  43. package/dist/contexts/toast-context.d.ts.map +1 -0
  44. package/dist/hooks/use-breadcrumb.d.ts +19 -0
  45. package/dist/hooks/use-breadcrumb.d.ts.map +1 -0
  46. package/dist/hooks/use-dialog.d.ts +6 -0
  47. package/dist/hooks/use-dialog.d.ts.map +1 -0
  48. package/dist/hooks/use-logger.d.ts +9 -0
  49. package/dist/hooks/use-logger.d.ts.map +1 -0
  50. package/dist/hooks/use-mobile.d.ts +4 -0
  51. package/dist/hooks/use-mobile.d.ts.map +1 -0
  52. package/dist/hooks/use-spinner.d.ts +7 -0
  53. package/dist/hooks/use-spinner.d.ts.map +1 -0
  54. package/dist/hooks/use-theme.d.ts +8 -0
  55. package/dist/hooks/use-theme.d.ts.map +1 -0
  56. package/dist/hooks/use-time-zone.d.ts +17 -0
  57. package/dist/hooks/use-time-zone.d.ts.map +1 -0
  58. package/dist/hooks/use-toast.d.ts +9 -0
  59. package/dist/hooks/use-toast.d.ts.map +1 -0
  60. package/dist/index.cjs +2 -0
  61. package/dist/index.cjs.map +1 -0
  62. package/dist/index.d.ts +45 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +1571 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/providers/breadcrumb-provider.d.ts +10 -0
  67. package/dist/providers/breadcrumb-provider.d.ts.map +1 -0
  68. package/dist/providers/dialog-provider.d.ts +6 -0
  69. package/dist/providers/dialog-provider.d.ts.map +1 -0
  70. package/dist/providers/handy-fluent-ui-provider.d.ts +10 -0
  71. package/dist/providers/handy-fluent-ui-provider.d.ts.map +1 -0
  72. package/dist/providers/spinner-provider.d.ts +10 -0
  73. package/dist/providers/spinner-provider.d.ts.map +1 -0
  74. package/dist/providers/toast-provider.d.ts +9 -0
  75. package/dist/providers/toast-provider.d.ts.map +1 -0
  76. package/dist/utils/string-util.d.ts +4 -0
  77. package/dist/utils/string-util.d.ts.map +1 -0
  78. package/package.json +94 -0
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ /** Props for FuiImageCarousel. */
3
+ type ImageCarouselProps = {
4
+ /** URLs of images to display as carousel slides. */
5
+ images: string[];
6
+ /** Tooltip label overrides for the carousel navigation buttons. */
7
+ langLabel?: {
8
+ autoplay?: string;
9
+ next?: string;
10
+ previous?: string;
11
+ };
12
+ };
13
+ /** Circular image carousel with navigation and autoplay controls. */
14
+ declare const ImageCarousel: React.FC<ImageCarouselProps>;
15
+ export type { ImageCarouselProps };
16
+ export { ImageCarousel as FuiImageCarousel };
17
+ //# sourceMappingURL=fui-image-carousell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fui-image-carousell.d.ts","sourceRoot":"","sources":["../../src/components/fui-image-carousell.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,kCAAkC;AAClC,KAAK,kBAAkB,GAAG;IACxB,oDAAoD;IACpD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAKF,qEAAqE;AACrE,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4D/C,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AACnC,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { TabListProps, TabProps, SelectTabData } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ /** Accepted tab identifier type. */
4
+ type FuiTabValue = string | number;
5
+ /** Typed wrapper around SelectTabData that narrows value to T. */
6
+ type FuiSelectTabData<T extends FuiTabValue> = Omit<SelectTabData, 'value'> & {
7
+ value: T;
8
+ };
9
+ /** Config for a single tab. value defaults to name when omitted. */
10
+ type FuiTabProps<T extends FuiTabValue = FuiTabValue> = Omit<TabProps, 'value'> & {
11
+ name: string;
12
+ value?: T;
13
+ children?: React.ReactNode;
14
+ };
15
+ /** Config-carrier for a single tab. Must be a direct child of FuiTabList. Renders nothing itself. */
16
+ declare const FuiTab: (<T extends FuiTabValue>(_props: FuiTabProps<T>) => null) & {
17
+ _marker: symbol;
18
+ };
19
+ /** Props for FuiTabList. selectedValue and onTabSelect are typed to T. */
20
+ type FuiTabListProps<T extends FuiTabValue = FuiTabValue> = Omit<TabListProps, 'selectedValue' | 'onTabSelect'> & {
21
+ selectedValue?: T;
22
+ onTabSelect?: (data: FuiSelectTabData<T>) => void;
23
+ children: React.ReactNode;
24
+ };
25
+ /** Tab list with an inline content panel. Forces horizontal layout on mobile regardless of the vertical prop. */
26
+ declare const FuiTabList: <T extends FuiTabValue>(props: FuiTabListProps<T>) => import("react/jsx-runtime").JSX.Element;
27
+ export { FuiTab, FuiTabList };
28
+ export type { FuiTabProps as TabProps, TabListProps };
29
+ //# sourceMappingURL=fui-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fui-tab.d.ts","sourceRoot":"","sources":["../../src/components/fui-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,QAAQ,EAKR,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AA6C1B,oCAAoC;AACpC,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnC,kEAAkE;AAClE,KAAK,gBAAgB,CAAC,CAAC,SAAS,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAC5E,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,oEAAoE;AACpE,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAIF,qGAAqG;AACrG,QAAA,MAAM,MAAM,IACT,CAAC,SAAS,WAAW,UAAU,WAAW,CAAC,CAAC,CAAC;;CAE/C,CAAC;AAEF,0EAA0E;AAC1E,KAAK,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,IAAI,CAC9D,YAAY,EACZ,eAAe,GAAG,aAAa,CAChC,GAAG;IACF,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAClD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,iHAAiH;AACjH,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,WAAW,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,4CAsDnE,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC9B,YAAY,EAAE,WAAW,IAAI,QAAQ,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { default as React } from 'react';
2
+ type SortDirection = 'asc' | 'desc';
3
+ type WidthProps = Pick<React.CSSProperties, 'width' | 'minWidth' | 'maxWidth'>;
4
+ type ColumnPropsBase = {
5
+ /** Dot-notation path into the row object, e.g. `"country.name"`. */
6
+ field: string;
7
+ header: string;
8
+ style?: React.CSSProperties;
9
+ /** Styles applied specifically to the header cell. */
10
+ headerStyle?: React.CSSProperties;
11
+ /** When true, long header text is truncated with ellipsis. Defaults to false. */
12
+ headerEllipsis?: boolean;
13
+ sortable?: boolean;
14
+ align?: 'left' | 'center' | 'right';
15
+ };
16
+ /** Column that renders a formatted string. Mutually exclusive with builder. */
17
+ type ColumnWithFormatter<T> = ColumnPropsBase & {
18
+ formatter: (value: unknown, row: T) => string;
19
+ builder?: never;
20
+ };
21
+ /** Column that renders an arbitrary ReactNode. Mutually exclusive with formatter. */
22
+ type ColumnWithBuilder<T> = ColumnPropsBase & {
23
+ builder: (value: unknown, row: T) => React.ReactNode;
24
+ formatter?: never;
25
+ };
26
+ /** Column with default plain-string rendering. */
27
+ type ColumnWithNeither = ColumnPropsBase & {
28
+ formatter?: never;
29
+ builder?: never;
30
+ };
31
+ /** Column definition union. Use formatter for text cells, builder for rich content, neither for plain string cast. */
32
+ type ColumnProps<T = Record<string, unknown>> = ColumnWithFormatter<T> | ColumnWithBuilder<T> | ColumnWithNeither;
33
+ /** Label overrides for FuiTable pagination text. All fields are optional; built-in English defaults are used for any omitted field. */
34
+ type FuiTableLabel = {
35
+ /** Label before the page-size dropdown. Default: 'Rows :' */
36
+ pageSize?: string;
37
+ /** Text shown when there are no rows. Default: 'No data' */
38
+ noData?: string;
39
+ /** Template for the page-range display. Tokens: {{from}} {{to}} {{total}}. Default: '{{from}} to {{to}} of {{total}}' */
40
+ pageRange?: string;
41
+ paginationBar?: {
42
+ next?: string;
43
+ /** Template for fast-forward button. Token: {{n}}. */
44
+ nextN?: string;
45
+ previous?: string;
46
+ /** Template for fast-backward button. Token: {{n}}. */
47
+ previousN?: string;
48
+ };
49
+ };
50
+ /** Pagination state. offset is zero-based. */
51
+ type PaginationProps = {
52
+ offset: number;
53
+ pageSize: number;
54
+ /** Pages to jump when the fast-forward (<</>>) buttons are clicked. Defaults to 5. */
55
+ fastForwardPage?: number;
56
+ totalRecord: number;
57
+ pageSizeOption: number[];
58
+ /** Position of the pagination bar. Defaults to 'bottom'. */
59
+ position?: 'top' | 'bottom';
60
+ };
61
+ /** Config-carrier component that declares a table column. Must be a direct child of FuiTable. Renders nothing. */
62
+ declare const Column: React.FC<ColumnProps>;
63
+ /** Props for FuiTable. Columns are declared as FuiColumn JSX children. */
64
+ type TableProps<T extends Record<string, unknown>> = {
65
+ data: T[];
66
+ pagination?: PaginationProps;
67
+ /** Called when the user changes page or clicks a sortable column header. Without this, sort state is local-only and a warning is logged. */
68
+ onPageOrSort?: (page?: {
69
+ offset: number;
70
+ pageSize: number;
71
+ }, sort?: {
72
+ field: string;
73
+ direction: SortDirection;
74
+ }) => void;
75
+ /**
76
+ * Minimum width of the scrollable table area. The table always expands to fill the parent
77
+ * container; a horizontal scrollbar appears when the parent is narrower than this value.
78
+ * Both `width` and `minWidth` are treated as the minimum — the table always fills available space.
79
+ */
80
+ width?: WidthProps;
81
+ /** Label overrides for pagination text. */
82
+ langLabel?: FuiTableLabel;
83
+ children: React.ReactNode;
84
+ };
85
+ /** Data table driven by FuiColumn children. Supports sorting and pagination. */
86
+ declare const Table: <T extends Record<string, unknown>>({ data, onPageOrSort, pagination, width, langLabel, children, }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
87
+ export { Table as FuiTable, Column as FuiColumn };
88
+ export type { TableProps, ColumnProps, PaginationProps, FuiTableLabel };
89
+ //# sourceMappingURL=fui-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fui-table.d.ts","sourceRoot":"","sources":["../../src/components/fui-table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { CheckboxProps, CheckboxOnChangeData } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ /** Props for FuiInputCheckbox. */
4
+ type InputCheckboxProps = Omit<CheckboxProps, 'onChange'> & {
5
+ /** When true, change events are silently swallowed. Defaults to false. */
6
+ readOnly?: boolean;
7
+ onChange?: (data: CheckboxOnChangeData) => void;
8
+ /** Custom CSS class for the checkbox root. */
9
+ className?: string;
10
+ /** Custom CSS styles for the checkbox root. */
11
+ style?: React.CSSProperties;
12
+ };
13
+ /** Checkbox with optional read-only mode that visually appears interactive but ignores changes. */
14
+ declare const InputCheckbox: React.FC<InputCheckboxProps>;
15
+ export { InputCheckbox as FuiInputCheckbox };
16
+ export type { InputCheckboxProps };
17
+ //# sourceMappingURL=input-checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-checkbox.d.ts","sourceRoot":"","sources":["../../src/components/input-checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,kCAAkC;AAClC,KAAK,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG;IAC1D,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChD,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF,mGAAmG;AACnG,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAU/C,CAAC;AAEF,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { DatePickerProps } from '@fluentui/react-datepicker-compat';
2
+ import { default as React } from 'react';
3
+ import { FieldLayoutProps } from './with-input-field';
4
+ type BaseInputDateProps = Omit<DatePickerProps, 'id' | 'value' | 'onSelectDate' | 'onChange' | 'formatDate'> & {
5
+ value: Date | null;
6
+ onChange: (date: Date | null | undefined) => void;
7
+ /** Custom date formatter. Defaults to Date.toLocaleDateString(). */
8
+ formatter?: (date: Date | null) => string;
9
+ /** Custom CSS class for the date picker root. */
10
+ className?: string;
11
+ /** Custom CSS styles for the date picker root. */
12
+ style?: React.CSSProperties;
13
+ /** When true, the calendar popup/drawer is suppressed. */
14
+ readOnly?: boolean;
15
+ };
16
+ declare const MobileDate: React.FC<BaseInputDateProps & {
17
+ id?: string;
18
+ drawerTitle?: string;
19
+ }>;
20
+ /** Props for FuiInputDate. */
21
+ type InputDateProps = BaseInputDateProps & FieldLayoutProps;
22
+ /** Date picker. On desktop renders FluentUI DatePicker; on mobile renders a bottom-sheet calendar drawer. */
23
+ declare const InputDate: React.FC<InputDateProps>;
24
+ /** @internal Mobile date picker variant used by FuiInputDate on narrow viewports. */
25
+ export { MobileDate as FuiMobileDate, InputDate as FuiInputDate };
26
+ export type { InputDateProps };
27
+ //# sourceMappingURL=input-date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-date.d.ts","sourceRoot":"","sources":["../../src/components/input-date.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAc,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEhF,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAiBtE,KAAK,kBAAkB,GAAG,IAAI,CAC5B,eAAe,EACf,IAAI,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAC5D,GAAG;IACF,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,oEAAoE;IACpE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC;IAC1C,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA4CF,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CACxB,kBAAkB,GAAG;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAyEF,CAAC;AAIF,8BAA8B;AAC9B,KAAK,cAAc,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAC5D,6GAA6G;AAC7G,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAcvC,CAAC;AAEF,qFAAqF;AACrF,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,SAAS,IAAI,YAAY,EAAE,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { DropdownProps } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ import { FieldLayoutProps } from './with-input-field';
4
+ export type InputDropdownOption = {
5
+ disabled?: boolean;
6
+ value: string;
7
+ text: string;
8
+ group?: string;
9
+ /** Custom render function for the option content */
10
+ render?: () => React.ReactNode;
11
+ };
12
+ type BaseInputDropdownProps = Omit<DropdownProps, 'children' | 'onChange' | 'onOptionSelect' | 'selectedOptions' | 'value'> & {
13
+ /** Selected value(s). String for single select, array of strings for multi-select. */
14
+ value: string | string[] | null;
15
+ /** Callback fired when selection changes. */
16
+ onChange: (value: string | string[] | null) => void;
17
+ /** List of options to display. */
18
+ options: InputDropdownOption[];
19
+ /** When true, change events are silently swallowed. Defaults to false. */
20
+ readOnly?: boolean;
21
+ };
22
+ declare const MobileDropdown: React.FC<BaseInputDropdownProps & {
23
+ id?: string;
24
+ drawerTitle?: string;
25
+ }>;
26
+ /** Props for FuiInputDropdown. */
27
+ type InputDropdownProps = BaseInputDropdownProps & FieldLayoutProps;
28
+ /** Dropdown with single or multi-select. Renders a bottom-sheet drawer on mobile instead of a popup. */
29
+ declare const InputDropdown: React.FC<InputDropdownProps>;
30
+ /** @internal Mobile-only dropdown variant used by FuiInputDropdown. Also exported for use in FuiTable's pagination bar. */
31
+ export { MobileDropdown as FuiMobileDropdown, InputDropdown as FuiInputDropdown };
32
+ export type { InputDropdownProps };
33
+ //# sourceMappingURL=input-dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-dropdown.d.ts","sourceRoot":"","sources":["../../src/components/input-dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAYd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgBtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,sBAAsB,GAAG,IAAI,CAChC,aAAa,EACb,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,OAAO,CACzE,GAAG;IACF,sFAAsF;IACtF,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,kCAAkC;IAClC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA+EF,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAoF5F,CAAC;AAoCF,kCAAkC;AAClC,KAAK,kBAAkB,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;AACpE,wGAAwG;AACxG,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAM/C,CAAC;AAEF,2HAA2H;AAC3H,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,aAAa,IAAI,gBAAgB,EAAE,CAAC;AAClF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { default as React } from 'react';
2
+ import { FieldLayoutProps } from './with-input-field';
3
+ type GroupableInputProps<V extends string | number | Date> = FieldLayoutProps & {
4
+ value?: V | null;
5
+ onChange: (value: V | null) => void;
6
+ };
7
+ type InputGroupItem<T extends GroupableInputProps<string | number | Date>> = {
8
+ element: React.ReactElement<T>;
9
+ /** Flex-grow factor relative to siblings. Defaults to 1. */
10
+ weight?: number;
11
+ };
12
+ type InputGroupProps<T extends GroupableInputProps<string | number | Date>> = Omit<FieldLayoutProps, 'label'> & {
13
+ label: string;
14
+ items: InputGroupItem<T>[];
15
+ /** Custom CSS class for the group container. */
16
+ className?: string;
17
+ /** Custom CSS styles for the group container. */
18
+ style?: React.CSSProperties;
19
+ };
20
+ /** Groups multiple inputs under one shared label with weighted distribution. Items stack vertically on mobile regardless of weight. Each item's own label is hidden; the group label takes over. */
21
+ declare const InputGroup: <T extends GroupableInputProps<string | number | Date>>(props: InputGroupProps<T>) => React.ReactElement;
22
+ export { InputGroup as FuiInputGroup };
23
+ /** Props for FuiInputGroup. */
24
+ export type { InputGroupProps };
25
+ //# sourceMappingURL=input-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.d.ts","sourceRoot":"","sources":["../../src/components/input-group.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AAiBtE,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,IAAI,gBAAgB,GAAG;IAC9E,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,KAAK,cAAc,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI;IAC3E,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,CAChF,gBAAgB,EAChB,OAAO,CACR,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAsCF,oMAAoM;AACpM,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,mBAAmB,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EACvE,OAAO,eAAe,CAAC,CAAC,CAAC,KACxB,KAAK,CAAC,YAuBR,CAAC;AAEF,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,CAAC;AACvC,+BAA+B;AAC/B,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { InputProps } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ import { InputTextProps } from './input-text';
4
+ import { FieldLayoutProps } from './with-input-field';
5
+ /** Holds text in up to three languages, mapped positionally to the slots in SupportedLanguage. Null means the slot is unpopulated. */
6
+ type MultiLangText = {
7
+ /** Value for the first configured language. */
8
+ valueInLangOne: string | null;
9
+ /** Value for the second configured language. */
10
+ valueInLangTwo: string | null;
11
+ /** Value for the third configured language. */
12
+ valueInLangThree: string | null;
13
+ };
14
+ type BaseInputMultiLangTextProps = Omit<InputProps, 'defaultValue' | 'type' | 'id' | 'value' | 'onChange' | 'label'> & {
15
+ value: MultiLangText | null;
16
+ onChange: (value: MultiLangText | null) => void;
17
+ label: string;
18
+ /** Language slot names shown in the drawer (up to 3). When fewer than 2 are provided the translate icon is hidden. */
19
+ langLabel?: {
20
+ languages: string[];
21
+ };
22
+ /** Custom CSS class for the input root. */
23
+ className?: string;
24
+ /** Custom CSS styles for the input root. */
25
+ style?: React.CSSProperties;
26
+ /** Component used to render each per-language field in the drawer. Must accept InputTextProps. Defaults to FuiInputText. */
27
+ textComponent?: React.ComponentType<InputTextProps>;
28
+ };
29
+ /** Props for FuiInputMultiLangText. label is required and doubles as the per-language drawer title. */
30
+ type InputMultiLangTextProps = BaseInputMultiLangTextProps & FieldLayoutProps;
31
+ /** Text input with per-language values. Translate icon opens a drawer with one input per configured language. */
32
+ declare const InputMultiLangText: React.FC<InputMultiLangTextProps>;
33
+ export { InputMultiLangText as FuiInputMultiLangText };
34
+ export type { MultiLangText, InputMultiLangTextProps };
35
+ //# sourceMappingURL=input-multi-lang.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-multi-lang.d.ts","sourceRoot":"","sources":["../../src/components/input-multi-lang.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAQX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,EAAgB,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,sIAAsI;AACtI,KAAK,aAAa,GAAG;IACnB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gDAAgD;IAChD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,2BAA2B,GAAG,IAAI,CACrC,UAAU,EACV,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAChE,GAAG;IACF,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,sHAAsH;IACtH,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,4HAA4H;IAC5H,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;CACrD,CAAC;AAkKF,uGAAuG;AACvG,KAAK,uBAAuB,GAAG,2BAA2B,GAAG,gBAAgB,CAAC;AAC9E,iHAAiH;AACjH,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAOzD,CAAC;AAEF,OAAO,EAAE,kBAAkB,IAAI,qBAAqB,EAAE,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { InputProps } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ import { FieldLayoutProps } from './with-input-field';
4
+ /**
5
+ * Base number input props. Providing step switches the rendered element from a free-form text
6
+ * input to a SpinButton (direct typing is disabled in SpinButton mode).
7
+ * formatter applies only when the field is not focused.
8
+ */
9
+ type BaseInputNumberProps = Omit<InputProps, 'defaultValue' | 'type' | 'value' | 'onChange' | 'id' | 'min' | 'max' | 'minLengh' | 'maxLength'> & {
10
+ value: number | null;
11
+ onChange: (value: number | null) => void;
12
+ /** When false, the minus key is blocked. Defaults to true. */
13
+ allowNegative?: boolean;
14
+ /** Formats the display value when unfocused. */
15
+ formatter?: (value: number) => string;
16
+ /** Custom CSS class for the number input root. */
17
+ className?: string;
18
+ /** Custom CSS styles for the number input root. */
19
+ style?: React.CSSProperties;
20
+ } & ({
21
+ step?: undefined;
22
+ /** Number of decimal places allowed. Defaults to 0. */
23
+ precision?: number;
24
+ min?: number;
25
+ max?: number;
26
+ } | {
27
+ /** Enables SpinButton mode with this increment. precision is fixed at 0 when step is set. */
28
+ step: number;
29
+ precision?: 0;
30
+ min?: number;
31
+ max?: number;
32
+ });
33
+ /** Props for FuiInputNumber. */
34
+ type InputNumberProps = BaseInputNumberProps & FieldLayoutProps;
35
+ /** Number input with keystroke filtering. Set step to switch to SpinButton mode. */
36
+ declare const InputNumber: React.FC<InputNumberProps>;
37
+ export { InputNumber as FuiInputNumber };
38
+ export type { InputNumberProps };
39
+ //# sourceMappingURL=input-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-number.d.ts","sourceRoot":"","sources":["../../src/components/input-number.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAMX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgBtE;;;;GAIG;AACH,KAAK,oBAAoB,GAAG,IAAI,CAC9B,UAAU,EACV,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CACjG,GAAG;IACF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,GAAG,CACE;IACE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACD;IACE,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CACJ,CAAC;AAiMJ,gCAAgC;AAChC,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;AAChE,oFAAoF;AACpF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAK3C,CAAC;AAEF,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { RadioGroupProps, RadioGroupOnChangeData } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ import { FieldLayoutProps } from './with-input-field';
4
+ type BaseInputRadioProps = Omit<RadioGroupProps, 'id' | 'layout' | 'onChange'> & {
5
+ layout?: 'vertical' | 'horizontal';
6
+ onChange?: (data: RadioGroupOnChangeData) => void;
7
+ /** Custom CSS class for the radio group root. */
8
+ className?: string;
9
+ /** Custom CSS styles for the radio group root. */
10
+ style?: React.CSSProperties;
11
+ /** When true, change events are silently swallowed. Defaults to false. */
12
+ readOnly?: boolean;
13
+ };
14
+ /** Props for FuiInputRadio. */
15
+ type InputRadioProps = BaseInputRadioProps & FieldLayoutProps;
16
+ /** Radio group wrapped with a shared label. horizontal-stacked layout is not supported. */
17
+ declare const InputRadio: (props: Omit<RadioGroupProps, "id" | "onChange" | "layout"> & {
18
+ layout?: "vertical" | "horizontal";
19
+ onChange?: (data: RadioGroupOnChangeData) => void;
20
+ /** Custom CSS class for the radio group root. */
21
+ className?: string;
22
+ /** Custom CSS styles for the radio group root. */
23
+ style?: React.CSSProperties;
24
+ /** When true, change events are silently swallowed. Defaults to false. */
25
+ readOnly?: boolean;
26
+ } & {
27
+ id?: string;
28
+ } & (FieldLayoutProps & {
29
+ onClear?: (() => void) | undefined;
30
+ })) => import("react/jsx-runtime").JSX.Element;
31
+ export { InputRadio as FuiInputRadio };
32
+ export type { InputRadioProps };
33
+ //# sourceMappingURL=input-radio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-radio.d.ts","sourceRoot":"","sources":["../../src/components/input-radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACjG,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtE,KAAK,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC,GAAG;IAC/E,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAClD,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,+BAA+B;AAC/B,KAAK,eAAe,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAkB9D,2FAA2F;AAC3F,QAAA,MAAM,UAAU;aA9BL,UAAU,GAAG,YAAY;eACvB,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI;IACjD,iDAAiD;gBACrC,MAAM;IAClB,kDAAkD;YAC1C,KAAK,CAAC,aAAa;IAC3B,0EAA0E;eAC/D,OAAO;;SAQX,MAAM;;;8CAeiC,CAAC;AAEjD,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { SwitchProps } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ /** Props for FuiInputSwitch. onChange receives the new boolean directly instead of the raw SwitchProps event. */
4
+ type InputSwitchProps = Omit<SwitchProps, 'onChange'> & {
5
+ /** When true, change events are silently swallowed. Defaults to false. */
6
+ readOnly?: boolean;
7
+ onChange: (value: boolean) => void;
8
+ /** Custom CSS class for the switch root. */
9
+ className?: string;
10
+ /** Custom CSS styles for the switch root. */
11
+ style?: React.CSSProperties;
12
+ };
13
+ /** Toggle switch. readOnly silently ignores changes without any visual indication. */
14
+ declare const InputSwitch: React.FC<InputSwitchProps>;
15
+ export { InputSwitch as FuiInputSwitch };
16
+ export type { InputSwitchProps };
17
+ //# sourceMappingURL=input-switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-switch.d.ts","sourceRoot":"","sources":["../../src/components/input-switch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,iHAAiH;AACjH,KAAK,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG;IACtD,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF,sFAAsF;AACtF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAU3C,CAAC;AAEF,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { InputProps } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ import { FieldLayoutProps } from './with-input-field';
4
+ type BaseInputTextProps = Omit<InputProps, 'defaultValue' | 'type' | 'id' | 'value' | 'onChange'> & {
5
+ value: string | null;
6
+ onChange: (value: string | null) => void;
7
+ type?: 'text' | 'email' | 'password';
8
+ /** Custom CSS class for the input root. */
9
+ className?: string;
10
+ /** Custom CSS styles for the input root. */
11
+ style?: React.CSSProperties;
12
+ };
13
+ /** Props for FuiInputText. */
14
+ type InputTextProps = BaseInputTextProps & FieldLayoutProps;
15
+ /** Text input. password type adds a show/hide toggle; email type blocks a second '@' character. */
16
+ declare const InputText: React.FC<InputTextProps>;
17
+ export { InputText as FuiInputText };
18
+ export type { InputTextProps };
19
+ //# sourceMappingURL=input-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-text.d.ts","sourceRoot":"","sources":["../../src/components/input-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,KAAK,kBAAkB,GAAG,IAAI,CAC5B,UAAU,EACV,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,CACtD,GAAG;IACF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IACrC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAgEF,8BAA8B;AAC9B,KAAK,cAAc,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAC5D,mGAAmG;AACnG,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAKvC,CAAC;AAEF,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { TextareaProps } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ import { FieldLayoutProps } from './with-input-field';
4
+ type BaseInputTextAreaProps = Omit<TextareaProps, 'defaultValue' | 'id' | 'value' | 'onChange'> & {
5
+ value: string | null;
6
+ onChange: (value: string | null) => void;
7
+ /** Custom CSS class for the textarea root. */
8
+ className?: string;
9
+ /** Custom CSS styles for the textarea root. */
10
+ style?: React.CSSProperties;
11
+ /** When true, change events are silently swallowed. Defaults to false. */
12
+ readOnly?: boolean;
13
+ };
14
+ /** Props for FuiInputTextArea. When maxLength is set, a character counter appears in the message area unless additionalMessage is provided. */
15
+ type InputTextAreaProps = BaseInputTextAreaProps & FieldLayoutProps;
16
+ /** Multi-line text area. Automatically appends a character counter when maxLength is set and no additionalMessage is given. */
17
+ declare const InputTextArea: React.FC<InputTextAreaProps>;
18
+ export { InputTextArea as FuiInputTextArea };
19
+ export type { InputTextAreaProps };
20
+ //# sourceMappingURL=input-textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-textarea.d.ts","sourceRoot":"","sources":["../../src/components/input-textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,KAAK,sBAAsB,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG;IAChG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,+IAA+I;AAC/I,KAAK,kBAAkB,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;AAqBpE,+HAA+H;AAC/H,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgB/C,CAAC;AAEF,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { InputProps } from '@fluentui/react-components';
2
+ import { default as React } from 'react';
3
+ import { FieldLayoutProps } from './with-input-field';
4
+ type Time = {
5
+ hour: number;
6
+ minute: number;
7
+ second: number;
8
+ };
9
+ type BaseInputTimeProps = Omit<InputProps, 'contentAfter' | 'contentBefore' | 'defaultValue' | 'id' | 'input' | 'onChange' | 'type' | 'value'> & {
10
+ value: Time | null;
11
+ onChange: (time: Time | null) => void;
12
+ /** When true, show the time in 24-hour format, otherwise show AM/PM toggle. Default is true. */
13
+ in24HourFormat?: boolean;
14
+ /** When true, allow user to select a value for seconds. Default is false. */
15
+ withSeconds?: boolean;
16
+ /** When true, incrementing past a segment boundary (e.g. 59m → 0m) also advances the next segment. */
17
+ cascadeCarry?: boolean;
18
+ /** When true, arrows and AM/PM toggle are suppressed. */
19
+ readOnly?: boolean;
20
+ /** Custom CSS class for the input root. */
21
+ className?: string;
22
+ /** Custom CSS styles for the input root. */
23
+ style?: React.CSSProperties;
24
+ };
25
+ /** Props for FuiInputTime. */
26
+ type InputTimeProps = BaseInputTimeProps & FieldLayoutProps;
27
+ /** Time picker with up/down arrows. Shows AM/PM toggle when in24HourFormat is false. */
28
+ declare const InputTime: React.FC<InputTimeProps>;
29
+ export { InputTime as FuiInputTime };
30
+ export type { InputTimeProps, Time as FuiTime };
31
+ //# sourceMappingURL=input-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-time.d.ts","sourceRoot":"","sources":["../../src/components/input-time.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAoC,MAAM,4BAA4B,CAAC;AAEjG,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAkCtE,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,kBAAkB,GAAG,IAAI,CAC5B,UAAU,EACV,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CACnG,GAAG;IACF,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,gGAAgG;IAChG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sGAAsG;IACtG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAqKF,8BAA8B;AAC9B,KAAK,cAAc,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAE5D,wFAAwF;AACxF,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAKvC,CAAC;AAEF,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,IAAI,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Common layout and labeling properties shared across all input components.
4
+ */
5
+ type FieldLayoutProps = {
6
+ /** The text to display as the field label. Pass `null` to completely omit the label container. */
7
+ label?: string | null;
8
+ /** Whether the field is mandatory (displays a red asterisk). */
9
+ required?: boolean;
10
+ /** Supplemental information displayed in a popover (InfoLabel). Triggers rendering of an info icon. */
11
+ hint?: string;
12
+ /** Error message displayed in red below the input. */
13
+ errorMessage?: string;
14
+ /** Informational message displayed in grey below the input (hidden if errorMessage is present). */
15
+ infoMessage?: string;
16
+ /** If true, the message area (error/info) and its reserved 12px space are not rendered. */
17
+ noMessage?: boolean;
18
+ /** Additional message or component to display on the right side of the message container. */
19
+ additionalMessage?: React.ReactNode;
20
+ /** Display eraser icon or not for clearing the content. Default is true */
21
+ clearable?: boolean;
22
+ } &
23
+ /**
24
+ * Layout direction:
25
+ * - 'vertical' (default): Label above the input.
26
+ * - 'horizontal': Label to the left of the input (stacks on mobile).
27
+ */
28
+ ({
29
+ direction?: 'vertical';
30
+ labelWidth?: never;
31
+ } | {
32
+ direction: 'horizontal';
33
+ labelWidth?: 'small' | 'medium' | 'large' | 'none';
34
+ });
35
+ /**
36
+ * A Higher-Order Component that wraps an input component with consistent
37
+ * labeling, validation messaging, and responsive layout logic.
38
+ *
39
+ * @param WrappedComponent The base input component to be enhanced.
40
+ * @returns A component enhanced with standard field layout behaviors.
41
+ */
42
+ declare const withInputField: <P extends {
43
+ id?: string;
44
+ }>(WrappedComponent: React.ComponentType<P>) => (props: P & FieldLayoutProps & {
45
+ onClear?: () => void;
46
+ }) => import("react/jsx-runtime").JSX.Element;
47
+ export { withInputField };
48
+ export type { FieldLayoutProps };
49
+ //# sourceMappingURL=with-input-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-input-field.d.ts","sourceRoot":"","sources":["../../src/components/with-input-field.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAiG1B;;GAEG;AACH,KAAK,gBAAgB,GAAG;IACtB,kGAAkG;IAClG,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uGAAuG;IACvG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AACC;;;;GAIG;AACH,CAAG;IAAE,SAAS,CAAC,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GAC7C;IAAE,SAAS,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;CAAE,CAClF,CAAC;AAEJ;;;;;;GAMG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/C,kBAAkB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,aAEA,CAAC,GAAG,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,4CA0GxF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** Represents a single item in the breadcrumb trail. */
2
+ type BreadcrumbItem = {
3
+ /** Optional user-provided tag for identifying the item. */
4
+ tag?: string;
5
+ /** Label supplier for the breadcrumb item. */
6
+ label: () => string;
7
+ /** Optional action to trigger when the breadcrumb item is clicked. The trail is automatically truncated up to this item. */
8
+ action?: () => void;
9
+ };
10
+ /** Context type for managing the global breadcrumb trail. */
11
+ type BreadcrumbContextType = {
12
+ /** Current items in the breadcrumb trail. */
13
+ items: BreadcrumbItem[];
14
+ /** State setter for the breadcrumb items. */
15
+ setItems: React.Dispatch<React.SetStateAction<BreadcrumbItem[]>>;
16
+ };
17
+ declare const BreadcrumbContext: import('react').Context<BreadcrumbContextType | undefined>;
18
+ export { BreadcrumbContext as FuiBreadcrumbContext };
19
+ export type { BreadcrumbItem };
20
+ //# sourceMappingURL=breadcrumb-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-context.d.ts","sourceRoot":"","sources":["../../src/contexts/breadcrumb-context.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,KAAK,cAAc,GAAG;IACpB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,4HAA4H;IAC5H,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,6DAA6D;AAC7D,KAAK,qBAAqB,GAAG;IAC3B,6CAA6C;IAC7C,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;CAClE,CAAC;AAEF,QAAA,MAAM,iBAAiB,4DAA8D,CAAC;AAEtF,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,CAAC"}