@axzydev/axzy_ui_system 1.3.3 → 1.3.5

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.css"],"sourcesContent":["@import \"tailwindcss\";\n\n@source \"./**/*.{ts,tsx}\";\n@source \"../.storybook/**/*.{ts,tsx}\";\n\n@variant dark (&:is(.dark &));\n\n@theme {\n --animate-fadeIn: fadeIn 0.5s ease-out forwards;\n --animate-fade-in: fadeIn 0.5s ease-out forwards;\n\n --color-primary-50: #eff6ff;\n --color-primary-100: #dbeafe;\n --color-primary-200: #bfdbfe;\n --color-primary-300: #93c5fd;\n --color-primary-400: #60a5fa;\n --color-primary-500: #3b82f6;\n --color-primary-600: #2563eb;\n --color-primary-700: #1d4ed8;\n --color-primary-800: #1e40af;\n --color-primary-900: #1e3a8a;\n --color-primary-950: #172554;\n\n --color-secondary-50: #f8fafc;\n --color-secondary-100: #f1f5f9;\n --color-secondary-200: #e2e8f0;\n --color-secondary-300: #cbd5e1;\n --color-secondary-400: #94a3b8;\n --color-secondary-500: #64748b;\n --color-secondary-600: #475569;\n\n --color-text-muted: #475569;\n --color-secondary-700: #334155;\n --color-secondary-800: #1e293b;\n --color-secondary-900: #0f172a;\n --color-secondary-950: #020617;\n\n --color-success-50: #ecfdf5;\n --color-success-100: #d1fae5;\n --color-success-200: #a7f3d0;\n --color-success-300: #6ee7b7;\n --color-success-400: #34d399;\n --color-success-500: #10b981;\n --color-success-600: #059669;\n --color-success-700: #047857;\n --color-success-800: #065f46;\n --color-success-900: #064e3b;\n --color-success-950: #022c22;\n\n --color-danger-50: #fff1f2;\n --color-danger-100: #ffe4e6;\n --color-danger-200: #fecdd3;\n --color-danger-300: #fda4af;\n --color-danger-400: #fb7185;\n --color-danger-500: #f43f5e;\n --color-danger-600: #e11d48;\n --color-danger-700: #be123c;\n --color-danger-800: #9f1239;\n --color-danger-900: #881337;\n --color-danger-950: #4c0519;\n\n --color-warning-50: #fffbeb;\n --color-warning-100: #fef3c7;\n --color-warning-200: #fde68a;\n --color-warning-300: #fcd34d;\n --color-warning-400: #fbbf24;\n --color-warning-500: #f59e0b;\n --color-warning-600: #d97706;\n --color-warning-700: #b45309;\n --color-warning-800: #92400e;\n --color-warning-900: #78350f;\n --color-warning-950: #451a03;\n\n --color-purple-50: #f5f3ff;\n --color-purple-100: #ede9fe;\n --color-purple-200: #ddd6fe;\n --color-purple-300: #c4b5fd;\n --color-purple-400: #a78bfa;\n --color-purple-500: #8b5cf6;\n --color-purple-600: #7c3aed;\n --color-purple-700: #6d28d9;\n --color-purple-800: #5b21b6;\n --color-purple-900: #4c1d95;\n --color-purple-950: #2e1065;\n\n --color-info-50: #f0f9ff;\n --color-info-100: #e0f2fe;\n --color-info-200: #bae6fd;\n --color-info-300: #7dd3fc;\n --color-info-400: #38bdf8;\n --color-info-500: #0ea5e9;\n --color-info-600: #0284c7;\n --color-info-700: #0369a1;\n --color-info-800: #075985;\n --color-info-900: #0c4a6e;\n --color-info-950: #082f49;\n\n /* Soft-depth radius scale: larger, more consistent rounding across the system */\n --radius-xs: 0.25rem;\n --radius-sm: 0.375rem;\n --radius-md: 0.625rem;\n --radius-lg: 0.875rem;\n --radius-xl: 1.125rem;\n --radius-2xl: 1.5rem;\n --radius-3xl: 2rem;\n\n /* Soft-depth shadow scale: cool slate-tinted, low-opacity, multi-layer.\n Overrides Tailwind's default shadow-* tokens system-wide so every\n existing shadow-* usage picks up the new \"floating\" look with no\n per-component changes. */\n --shadow-2xs: 0 1px 2px 0 rgb(15 23 42 / 0.04);\n --shadow-xs: 0 1px 3px 0 rgb(15 23 42 / 0.05), 0 1px 2px -1px rgb(15 23 42 / 0.04);\n --shadow-sm: 0 2px 6px -1px rgb(15 23 42 / 0.06), 0 1px 3px -1px rgb(15 23 42 / 0.05);\n --shadow-md: 0 6px 16px -4px rgb(15 23 42 / 0.08), 0 3px 6px -3px rgb(15 23 42 / 0.05);\n --shadow-lg: 0 12px 28px -6px rgb(15 23 42 / 0.1), 0 6px 12px -6px rgb(15 23 42 / 0.06);\n --shadow-xl: 0 20px 40px -8px rgb(15 23 42 / 0.12), 0 10px 20px -8px rgb(15 23 42 / 0.06);\n --shadow-2xl: 0 32px 64px -16px rgb(15 23 42 / 0.18);\n --shadow: 0 2px 6px -1px rgb(15 23 42 / 0.06), 0 1px 3px -1px rgb(15 23 42 / 0.05);\n --shadow-inner: inset 0 2px 4px 0 rgb(15 23 42 / 0.04);\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n/* ──────────────────────────────────────────────\n GRID DINÁMICO (grid-cols-* / col-span-*)\n Tailwind v4 ya genera estas utilities nativamente (incl. variants sm/md/lg/xl).\n Estas @source inline son un safelist: fuerzan la generación de los valores\n dinámicos construidos en runtime (grid.tsx, styles.ts → `col-span-${n}`),\n que el scanner estático no puede ver. Sin esto, las clases dinámicas no\n existirían en el bundle.\n ────────────────────────────────────────────── */\n@source inline(\"grid-cols-1 grid-cols-2 grid-cols-3 grid-cols-4 grid-cols-5 grid-cols-6 grid-cols-7 grid-cols-8 grid-cols-9 grid-cols-10 grid-cols-11 grid-cols-12\");\n@source inline(\"col-span-1 col-span-2 col-span-3 col-span-4 col-span-5 col-span-6 col-span-7 col-span-8 col-span-9 col-span-10 col-span-11 col-span-12 col-span-full\");\n@source inline(\"sm:col-span-1 sm:col-span-2 sm:col-span-3 sm:col-span-4 sm:col-span-5 sm:col-span-6 sm:col-span-7 sm:col-span-8 sm:col-span-9 sm:col-span-10 sm:col-span-11 sm:col-span-12 sm:col-span-full\");\n@source inline(\"md:col-span-1 md:col-span-2 md:col-span-3 md:col-span-4 md:col-span-5 md:col-span-6 md:col-span-7 md:col-span-8 md:col-span-9 md:col-span-10 md:col-span-11 md:col-span-12 md:col-span-full\");\n@source inline(\"lg:col-span-1 lg:col-span-2 lg:col-span-3 lg:col-span-4 lg:col-span-5 lg:col-span-6 lg:col-span-7 lg:col-span-8 lg:col-span-9 lg:col-span-10 lg:col-span-11 lg:col-span-12 lg:col-span-full\");\n@source inline(\"xl:col-span-1 xl:col-span-2 xl:col-span-3 xl:col-span-4 xl:col-span-5 xl:col-span-6 xl:col-span-7 xl:col-span-8 xl:col-span-9 xl:col-span-10 xl:col-span-11 xl:col-span-12 xl:col-span-full\");\n\n/* ──────────────────────────────────────────────\n ANIMACIONES DE COMPONENTES (scoped it-*)\n Antes vivían en toast.css / stepper.css sueltos que NUNCA llegaban al bundle\n de dist (bug: animaciones muertas para consumidores) y usaban clases\n genéricas sin prefijo. Ahora van en @layer components con prefijo it-*.\n ────────────────────────────────────────────── */\n@layer components {\n @keyframes it-slide-in-right {\n from { opacity: 0; transform: translateX(24px); }\n to { opacity: 1; transform: translateX(0); }\n }\n @keyframes it-slide-in-left {\n from { opacity: 0; transform: translateX(-24px); }\n to { opacity: 1; transform: translateX(0); }\n }\n .it-stepper-slide-in-right {\n animation: it-slide-in-right 320ms cubic-bezier(0.2, 0.8, 0.2, 1) both;\n }\n .it-stepper-slide-in-left {\n animation: it-slide-in-left 320ms cubic-bezier(0.2, 0.8, 0.2, 1) both;\n }\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.css"],"sourcesContent":["@import \"tailwindcss\";\n\n@source \"./**/*.{ts,tsx}\";\n@source \"../.storybook/**/*.{ts,tsx}\";\n\n@variant dark (&:is(.dark &));\n\n@theme {\n --animate-fadeIn: fadeIn 0.5s ease-out forwards;\n --animate-fade-in: fadeIn 0.5s ease-out forwards;\n\n --color-primary-50: #eff6ff;\n --color-primary-100: #dbeafe;\n --color-primary-200: #bfdbfe;\n --color-primary-300: #93c5fd;\n --color-primary-400: #60a5fa;\n --color-primary-500: #3b82f6;\n --color-primary-600: #2563eb;\n --color-primary-700: #1d4ed8;\n --color-primary-800: #1e40af;\n --color-primary-900: #1e3a8a;\n --color-primary-950: #172554;\n\n --color-secondary-50: #f8fafc;\n --color-secondary-100: #f1f5f9;\n --color-secondary-200: #e2e8f0;\n --color-secondary-300: #cbd5e1;\n --color-secondary-400: #94a3b8;\n --color-secondary-500: #64748b;\n --color-secondary-600: #475569;\n\n --color-text-muted: #475569;\n --color-secondary-700: #334155;\n --color-secondary-800: #1e293b;\n --color-secondary-900: #0f172a;\n --color-secondary-950: #020617;\n\n --color-success-50: #ecfdf5;\n --color-success-100: #d1fae5;\n --color-success-200: #a7f3d0;\n --color-success-300: #6ee7b7;\n --color-success-400: #34d399;\n --color-success-500: #10b981;\n --color-success-600: #059669;\n --color-success-700: #047857;\n --color-success-800: #065f46;\n --color-success-900: #064e3b;\n --color-success-950: #022c22;\n\n --color-danger-50: #fff1f2;\n --color-danger-100: #ffe4e6;\n --color-danger-200: #fecdd3;\n --color-danger-300: #fda4af;\n --color-danger-400: #fb7185;\n --color-danger-500: #f43f5e;\n --color-danger-600: #e11d48;\n --color-danger-700: #be123c;\n --color-danger-800: #9f1239;\n --color-danger-900: #881337;\n --color-danger-950: #4c0519;\n\n --color-warning-50: #fffbeb;\n --color-warning-100: #fef3c7;\n --color-warning-200: #fde68a;\n --color-warning-300: #fcd34d;\n --color-warning-400: #fbbf24;\n --color-warning-500: #f59e0b;\n --color-warning-600: #d97706;\n --color-warning-700: #b45309;\n --color-warning-800: #92400e;\n --color-warning-900: #78350f;\n --color-warning-950: #451a03;\n\n --color-purple-50: #f5f3ff;\n --color-purple-100: #ede9fe;\n --color-purple-200: #ddd6fe;\n --color-purple-300: #c4b5fd;\n --color-purple-400: #a78bfa;\n --color-purple-500: #8b5cf6;\n --color-purple-600: #7c3aed;\n --color-purple-700: #6d28d9;\n --color-purple-800: #5b21b6;\n --color-purple-900: #4c1d95;\n --color-purple-950: #2e1065;\n\n --color-info-50: #f0f9ff;\n --color-info-100: #e0f2fe;\n --color-info-200: #bae6fd;\n --color-info-300: #7dd3fc;\n --color-info-400: #38bdf8;\n --color-info-500: #0ea5e9;\n --color-info-600: #0284c7;\n --color-info-700: #0369a1;\n --color-info-800: #075985;\n --color-info-900: #0c4a6e;\n --color-info-950: #082f49;\n\n /* Soft-depth radius scale: larger, more consistent rounding across the system */\n --radius-xs: 0.25rem;\n --radius-sm: 0.375rem;\n --radius-md: 0.625rem;\n --radius-lg: 0.875rem;\n --radius-xl: 1.125rem;\n --radius-2xl: 1.5rem;\n --radius-3xl: 2rem;\n\n /* Soft-depth shadow scale: cool slate-tinted, low-opacity, multi-layer.\n Overrides Tailwind's default shadow-* tokens system-wide so every\n existing shadow-* usage picks up the new \"floating\" look with no\n per-component changes. */\n --shadow-2xs: 0 1px 2px 0 rgb(15 23 42 / 0.04);\n --shadow-xs: 0 1px 3px 0 rgb(15 23 42 / 0.05), 0 1px 2px -1px rgb(15 23 42 / 0.04);\n --shadow-sm: 0 2px 6px -1px rgb(15 23 42 / 0.06), 0 1px 3px -1px rgb(15 23 42 / 0.05);\n --shadow-md: 0 6px 16px -4px rgb(15 23 42 / 0.08), 0 3px 6px -3px rgb(15 23 42 / 0.05);\n --shadow-lg: 0 12px 28px -6px rgb(15 23 42 / 0.1), 0 6px 12px -6px rgb(15 23 42 / 0.06);\n --shadow-xl: 0 20px 40px -8px rgb(15 23 42 / 0.12), 0 10px 20px -8px rgb(15 23 42 / 0.06);\n --shadow-2xl: 0 32px 64px -16px rgb(15 23 42 / 0.18);\n --shadow: 0 2px 6px -1px rgb(15 23 42 / 0.06), 0 1px 3px -1px rgb(15 23 42 / 0.05);\n --shadow-inner: inset 0 2px 4px 0 rgb(15 23 42 / 0.04);\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n/* ──────────────────────────────────────────────\n GRID DINÁMICO (grid-cols-* / col-span-*)\n Tailwind v4 ya genera estas utilities nativamente (incl. variants sm/md/lg/xl).\n Estas @source inline son un safelist: fuerzan la generación de los valores\n dinámicos construidos en runtime (grid.tsx, styles.ts → `col-span-${n}`),\n que el scanner estático no puede ver. Sin esto, las clases dinámicas no\n existirían en el bundle.\n ────────────────────────────────────────────── */\n@source inline(\"grid-cols-1 grid-cols-2 grid-cols-3 grid-cols-4 grid-cols-5 grid-cols-6 grid-cols-7 grid-cols-8 grid-cols-9 grid-cols-10 grid-cols-11 grid-cols-12\");\n@source inline(\"col-span-1 col-span-2 col-span-3 col-span-4 col-span-5 col-span-6 col-span-7 col-span-8 col-span-9 col-span-10 col-span-11 col-span-12 col-span-full\");\n@source inline(\"sm:col-span-1 sm:col-span-2 sm:col-span-3 sm:col-span-4 sm:col-span-5 sm:col-span-6 sm:col-span-7 sm:col-span-8 sm:col-span-9 sm:col-span-10 sm:col-span-11 sm:col-span-12 sm:col-span-full\");\n@source inline(\"md:col-span-1 md:col-span-2 md:col-span-3 md:col-span-4 md:col-span-5 md:col-span-6 md:col-span-7 md:col-span-8 md:col-span-9 md:col-span-10 md:col-span-11 md:col-span-12 md:col-span-full\");\n@source inline(\"lg:col-span-1 lg:col-span-2 lg:col-span-3 lg:col-span-4 lg:col-span-5 lg:col-span-6 lg:col-span-7 lg:col-span-8 lg:col-span-9 lg:col-span-10 lg:col-span-11 lg:col-span-12 lg:col-span-full\");\n@source inline(\"xl:col-span-1 xl:col-span-2 xl:col-span-3 xl:col-span-4 xl:col-span-5 xl:col-span-6 xl:col-span-7 xl:col-span-8 xl:col-span-9 xl:col-span-10 xl:col-span-11 xl:col-span-12 xl:col-span-full\");\n\n/* ──────────────────────────────────────────────\n ANIMACIONES DE COMPONENTES (scoped it-*)\n Antes vivían en toast.css / stepper.css sueltos que NUNCA llegaban al bundle\n de dist (bug: animaciones muertas para consumidores) y usaban clases\n genéricas sin prefijo. Ahora van en @layer components con prefijo it-*.\n ────────────────────────────────────────────── */\n@layer components {\n @keyframes it-slide-in-right {\n from { opacity: 0; transform: translateX(24px); }\n to { opacity: 1; transform: translateX(0); }\n }\n @keyframes it-slide-in-left {\n from { opacity: 0; transform: translateX(-24px); }\n to { opacity: 1; transform: translateX(0); }\n }\n .it-stepper-slide-in-right {\n animation: it-slide-in-right 320ms cubic-bezier(0.2, 0.8, 0.2, 1) both;\n }\n .it-stepper-slide-in-left {\n animation: it-slide-in-left 320ms cubic-bezier(0.2, 0.8, 0.2, 1) both;\n }\n\n /* Pinned (frozen) table columns: 1px edge separator on the frozen side.\n Background + hover live in the component as Tailwind arbitrary utilities so\n the cell matches --color-table-rowBg / --color-table-rowHover. */\n :where(.it-table-pinned-left) {\n box-shadow: inset -1px 0 0 0 var(--color-secondary-200);\n }\n :where(.it-table-pinned-right) {\n box-shadow: inset 1px 0 0 0 var(--color-secondary-200);\n }\n}"],"mappings":"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","names":[]}
package/dist/index.d.cts CHANGED
@@ -19,6 +19,16 @@ interface UseDebouncedSearchResult {
19
19
  declare function useDebouncedSearch({ initialValue, debounceMs, onSearch, }: UseDebouncedSearchOptions): UseDebouncedSearchResult;
20
20
 
21
21
  type TableVariants = "default" | "striped" | "bordered";
22
+ /**
23
+ * Value stored for a single column filter.
24
+ *
25
+ * - `string | number | boolean` — text/number/boolean filters and catalog ids.
26
+ * - `Date` — a single-date filter (`Column.filter: "date"`).
27
+ * - `[Date | null, Date | null]` — a date-range filter (`Column.filter: "date-range"`).
28
+ */
29
+ type ColumnFilterValue = string | number | boolean | Date | [Date | null, Date | null];
30
+ /** Map of column `key` to its active filter value. */
31
+ type ColumnFilters = Record<string, ColumnFilterValue>;
22
32
  type TableSize = "sm" | "md" | "lg";
23
33
  /**
24
34
  * Cell padding / row-height preset for tables. Independent of `TableSize`
@@ -186,13 +196,13 @@ interface UseTableStateOptions {
186
196
  interface UseTableStateResult {
187
197
  currentPage: number;
188
198
  itemsPerPage: number;
189
- filters: Record<string, string | boolean | number>;
199
+ filters: ColumnFilters;
190
200
  sortConfig: SortConfig | null;
191
201
  totalPages: number;
192
202
  setTotalPages: (pages: number) => void;
193
203
  goToPage: (page: number) => void;
194
204
  handleItemsPerPageChange: (value: number) => void;
195
- handleFilterChange: (key: string, value: string | boolean | number | undefined) => void;
205
+ handleFilterChange: (key: string, value: ColumnFilterValue | undefined) => void;
196
206
  handleSort: (key: string, sortable?: boolean) => void;
197
207
  resetPage: () => void;
198
208
  clearFilters: () => void;
@@ -1123,6 +1133,17 @@ declare function ITConfirmDialog({ isOpen, onClose, onConfirm, title, message, c
1123
1133
 
1124
1134
  /** Data type of a table column, controls default rendering, filter UI, and sort comparison. */
1125
1135
  type ColumnType = "string" | "date" | "number" | "boolean" | "actions" | "catalog";
1136
+ /**
1137
+ * Per-column filter mode, set through `Column.filter`.
1138
+ *
1139
+ * - `true` — text/number input (or boolean toggle when `type: "boolean"`).
1140
+ * - `"catalog"` — `ITSelect` dropdown populated from `catalogOptions`.
1141
+ * - `"search"` — `ITSearchSelect` typeahead populated from `catalogOptions`
1142
+ * (respects `catalogOptions.onSearch` for server-side search).
1143
+ * - `"date"` — `ITDatePicker` single-date filter.
1144
+ * - `"date-range"` — `ITDatePicker` in range mode.
1145
+ */
1146
+ type ColumnFilterMode = boolean | "catalog" | "search" | "date" | "date-range";
1126
1147
  /** A single selectable entry for a `"catalog"`-type column's filter/value lookup. */
1127
1148
  interface CatalogOption {
1128
1149
  /** Unique identifier matched against the row's field value. */
@@ -1142,8 +1163,8 @@ interface Column<T = any> {
1142
1163
  currencyMX?: boolean;
1143
1164
  /** Custom action buttons/content rendered for a `"actions"`-type column. Receives the full row object. */
1144
1165
  actions?: (row: T) => React.ReactNode;
1145
- /** Enables per-column filtering. Pass `true` for a text/number/boolean filter matching `type`, or `"catalog"` to filter against `catalogOptions`. @default false */
1146
- filter?: boolean | "catalog";
1166
+ /** Enables per-column filtering. Pass `true` for a text/number/boolean filter matching `type`, `"catalog"` for an `ITSelect` fed by `catalogOptions`, `"search"` for an `ITSearchSelect` typeahead, or `"date"` / `"date-range"` for an `ITDatePicker`. @default false */
1167
+ filter?: ColumnFilterMode;
1147
1168
  /** Column data type. Drives default cell rendering, filter UI, and sort comparison. */
1148
1169
  type: ColumnType;
1149
1170
  /** Whether clicking the header sorts by this column. Ignored for `type: "actions"`. @default false */
@@ -1164,6 +1185,22 @@ interface Column<T = any> {
1164
1185
  loading?: boolean;
1165
1186
  /** Shows an error state in the filter UI when the catalog failed to load. @default false */
1166
1187
  error?: boolean;
1188
+ /**
1189
+ * Server-side search handler for a `filter: "search"` column. When provided,
1190
+ * `ITSearchSelect` delegates filtering to this callback (debounced) instead
1191
+ * of filtering `data` locally; the parent is expected to update `data`.
1192
+ */
1193
+ onSearch?: (query: string) => void;
1194
+ };
1195
+ /**
1196
+ * Date bounds applied by the `"date"` and `"date-range"` filters, forwarded to
1197
+ * the underlying `ITDatePicker`. Ignored by every other filter mode.
1198
+ */
1199
+ dateFilterOptions?: {
1200
+ /** Earliest selectable date. */
1201
+ minDate?: Date;
1202
+ /** Latest selectable date. */
1203
+ maxDate?: Date;
1167
1204
  };
1168
1205
  /**
1169
1206
  * Fixed column width. A `number` is treated as pixels (`width: 120` → `120px`);
@@ -1181,6 +1218,23 @@ interface Column<T = any> {
1181
1218
  * @default false
1182
1219
  */
1183
1220
  truncate?: boolean;
1221
+ /**
1222
+ * Pins this column to a horizontal edge so it stays visible while the table
1223
+ * scrolls sideways.
1224
+ *
1225
+ * - `"left"` — freezes the column flush to the left edge.
1226
+ * - `"right"` — freezes the column flush to the right edge.
1227
+ *
1228
+ * Omit to leave the column unpinned. When more than one column shares a side,
1229
+ * sticky offsets accumulate from each preceding pinned column's `width` /
1230
+ * `minWidth`; a column without a pixel width resolves to `0px`, so declare a
1231
+ * pixel `width` on every pinned column of that side to avoid overlap. The
1232
+ * pinned cell renders an opaque background (row background + row hover) and a
1233
+ * 1px separator shadow on its frozen edge.
1234
+ *
1235
+ * @default undefined (column not pinned)
1236
+ */
1237
+ pinned?: "left" | "right";
1184
1238
  }
1185
1239
  interface ITTableProps<T> {
1186
1240
  /** Column definitions: key, label, type, sortable behavior, filters, and custom rendering. */
@@ -1277,8 +1331,12 @@ interface ITDataTableFetchParams {
1277
1331
  page: number;
1278
1332
  /** Number of rows requested per page. */
1279
1333
  limit: number;
1280
- /** Active per-column filter values (from `Column.filter`), keyed by column `key`. */
1281
- filters: Record<string, string | number | boolean | Date>;
1334
+ /**
1335
+ * Active per-column filter values (from `Column.filter`), keyed by column
1336
+ * `key`. Scalars for text/number/boolean/date filters, a `Date` for
1337
+ * `filter: "date"`, and a `[start, end]` tuple for `filter: "date-range"`.
1338
+ */
1339
+ filters: ColumnFilters;
1282
1340
  /** Active sort, present only when the user has clicked a sortable column header. */
1283
1341
  sort?: {
1284
1342
  /** Column `key` currently sorted by. */
@@ -1314,7 +1372,7 @@ interface ITDataTableProps<T extends Record<string, unknown>> {
1314
1372
  * Filters managed outside of the ITDataTable (e.g. a date range picker).
1315
1373
  * These will be merged with the internal column filters before calling fetchData.
1316
1374
  */
1317
- externalFilters?: Record<string, string | number | boolean | Date>;
1375
+ externalFilters?: ColumnFilters;
1318
1376
  /**
1319
1377
  * Custom element to display instead of the default spinner while `isLoading` is true.
1320
1378
  */
@@ -2854,6 +2912,24 @@ interface ITNavigationSubItem {
2854
2912
  /** Whether this sub-item is currently active/highlighted. */
2855
2913
  isActive?: boolean;
2856
2914
  }
2915
+ /**
2916
+ * A titled group of sub-navigation items rendered under a parent menu.
2917
+ * Groups only add a visual heading: they are never clickable and never open
2918
+ * a third level (the sidebar supports exactly one level of nesting).
2919
+ */
2920
+ interface ITNavigationSubItemGroup {
2921
+ /** Unique identifier for the group. Used for the React key and the heading id. */
2922
+ id: string;
2923
+ /** Heading text rendered above the group's items. */
2924
+ label: string;
2925
+ /** Sub-items belonging to this group. Nesting a group inside a group is not supported. */
2926
+ items: ITNavigationSubItem[];
2927
+ }
2928
+ /**
2929
+ * A submenu entry: either a plain {@link ITNavigationSubItem} or a titled
2930
+ * {@link ITNavigationSubItemGroup}. Discriminate with `"items" in entry`.
2931
+ */
2932
+ type ITNavigationSubItemEntry = ITNavigationSubItem | ITNavigationSubItemGroup;
2857
2933
  /** A top-level navigation item, optionally with sub-items. */
2858
2934
  interface ITNavigationItem {
2859
2935
  /** Unique identifier. */
@@ -2866,8 +2942,12 @@ interface ITNavigationItem {
2866
2942
  action?: () => void;
2867
2943
  /** Whether this item is currently active/highlighted. */
2868
2944
  isActive?: boolean;
2869
- /** Nested sub-navigation items (renders as expandable submenu). */
2870
- subitems?: ITNavigationSubItem[];
2945
+ /**
2946
+ * Nested sub-navigation entries (renders as an expandable submenu).
2947
+ * Each entry is either a plain sub-item or a titled group of sub-items.
2948
+ * The field `items` is reserved for {@link ITNavigationSubItemGroup}.
2949
+ */
2950
+ subitems?: ITNavigationSubItemEntry[];
2871
2951
  /** Badge text displayed on the item (e.g. notification count). */
2872
2952
  badge?: string;
2873
2953
  }
@@ -3976,4 +4056,4 @@ declare const resolveCssColor: (colorStr: string, palette?: ITThemePalette$1, is
3976
4056
  */
3977
4057
  declare const getContrastTextColor: (bgColor: string, palette?: ITThemePalette$1, isDarkMode?: boolean) => "text-white" | "text-slate-800";
3978
4058
 
3979
- export { type Column, type FieldConfig, type FieldConfigV2, FileTypeEnum, ITAccordion, type ITAccordionItem, type ITAccordionProps, ITAlert, type ITAlertProps, ITAvatar, type ITAvatarProps, ITBadget, type ITBadgetProps, type ITBreadcrumbItem, ITBreadcrumbs, type ITBreadcrumbsProps, ITButton, type ITButtonProps, ITCalendar, type ITCalendarProps, ITCard, type ITCardProps, ITCheckbox, type ITCheckboxProps, ITChip, ITChipInput, type ITChipInputProps, type ITChipProps, ITConfirmDialog, type ITConfirmDialogProps, ITDataTable, type ITDataTableFetchParams, type ITDataTableProps, type ITDataTableResponse, ITDatePicker, type ITDatePickerProps, ITDialog, type ITDialogProps, ITDivider, type ITDividerProps, ITDrawer, type ITDrawerProps, ITDropdownMenu, type ITDropdownMenuItem, type ITDropdownMenuProps, ITDropfile, ITEmptyState, type ITEmptyStateProps, ITField, type ITFieldProps, ITFlex, type ITFlexProps, ITFormBuilder, type ITFormBuilderProps, ITFormHeader, type ITFormHeaderProps, ITGrid, type ITGridProps, ITImage, type ITImageProps, ITInput, type ITInputProps, ITLayout, type ITLayoutProps, ITLoader, type LoaderProps as ITLoaderProps, ITMaskedInput, type ITMaskedInputProps, ITMultiSelect, type ITMultiSelectOption, type ITMultiSelectProps, ITNavbar, type ITNavbarProps, type ITNavigationItem, type ITNavigationSubItem, ITPage, ITPageHeader, type ITPageHeaderProps, type ITPageProps, ITPagination, type ITPaginationProps, ITPopover, type ITPopoverProps, ITProgress, type ITProgressProps, ITRadioGroup, type ITRadioGroupProps, type ITRadioOption, ITSearchSelect, type ITSearchSelectProps, ITSearchTable, type ITSearchTableProps, ITSegmentedControl, type ITSegmentedControlProps, ITSelect, type ITSelectProps, ITSidebar, type ITSidebarProps, ITSkeleton, type ITSkeletonProps, ITSlideToggle, type ITSlideToggleProps, ITSlider, type ITSliderProps, ITStack, type ITStackProps, ITStatCard, type ITStatCardProps, ITStepper, type ITStepperProps, type ITTabItem, ITTable, type ITTableProps, ITTabs, type ITTabsProps, ITText, type ITTextProps, ITTextarea, type ITTextareaProps, type ITThemeConfig, type ITThemePalette$1 as ITThemePalette, ITThemeProvider, type ITThemeProviderProps, ITTimePicker, type ITTimePickerProps, ITToast, type ITToastProps, ITTripleFilter, type ITTripleFilterOption, type ITTripleFilterProps, ITWysiwyg, type ITWysiwygProps, type TableDensity, UploadStatus, type UseTableStateOptions, type UseTableStateResult, createValidationSchema, getContrastTextColor, isLightColor, resolveCssColor, useClickOutside, useDebouncedSearch, useEditableRow, useFloatingPanel, useITTheme, useITThemeSafe, useTableState };
4059
+ export { type Column, type ColumnFilterMode, type ColumnFilterValue, type ColumnFilters, type FieldConfig, type FieldConfigV2, FileTypeEnum, ITAccordion, type ITAccordionItem, type ITAccordionProps, ITAlert, type ITAlertProps, ITAvatar, type ITAvatarProps, ITBadget, type ITBadgetProps, type ITBreadcrumbItem, ITBreadcrumbs, type ITBreadcrumbsProps, ITButton, type ITButtonProps, ITCalendar, type ITCalendarProps, ITCard, type ITCardProps, ITCheckbox, type ITCheckboxProps, ITChip, ITChipInput, type ITChipInputProps, type ITChipProps, ITConfirmDialog, type ITConfirmDialogProps, ITDataTable, type ITDataTableFetchParams, type ITDataTableProps, type ITDataTableResponse, ITDatePicker, type ITDatePickerProps, ITDialog, type ITDialogProps, ITDivider, type ITDividerProps, ITDrawer, type ITDrawerProps, ITDropdownMenu, type ITDropdownMenuItem, type ITDropdownMenuProps, ITDropfile, ITEmptyState, type ITEmptyStateProps, ITField, type ITFieldProps, ITFlex, type ITFlexProps, ITFormBuilder, type ITFormBuilderProps, ITFormHeader, type ITFormHeaderProps, ITGrid, type ITGridProps, ITImage, type ITImageProps, ITInput, type ITInputProps, ITLayout, type ITLayoutProps, ITLoader, type LoaderProps as ITLoaderProps, ITMaskedInput, type ITMaskedInputProps, ITMultiSelect, type ITMultiSelectOption, type ITMultiSelectProps, ITNavbar, type ITNavbarProps, type ITNavigationItem, type ITNavigationSubItem, type ITNavigationSubItemEntry, type ITNavigationSubItemGroup, ITPage, ITPageHeader, type ITPageHeaderProps, type ITPageProps, ITPagination, type ITPaginationProps, ITPopover, type ITPopoverProps, ITProgress, type ITProgressProps, ITRadioGroup, type ITRadioGroupProps, type ITRadioOption, ITSearchSelect, type ITSearchSelectProps, ITSearchTable, type ITSearchTableProps, ITSegmentedControl, type ITSegmentedControlProps, ITSelect, type ITSelectProps, ITSidebar, type ITSidebarProps, ITSkeleton, type ITSkeletonProps, ITSlideToggle, type ITSlideToggleProps, ITSlider, type ITSliderProps, ITStack, type ITStackProps, ITStatCard, type ITStatCardProps, ITStepper, type ITStepperProps, type ITTabItem, ITTable, type ITTableProps, ITTabs, type ITTabsProps, ITText, type ITTextProps, ITTextarea, type ITTextareaProps, type ITThemeConfig, type ITThemePalette$1 as ITThemePalette, ITThemeProvider, type ITThemeProviderProps, ITTimePicker, type ITTimePickerProps, ITToast, type ITToastProps, ITTripleFilter, type ITTripleFilterOption, type ITTripleFilterProps, ITWysiwyg, type ITWysiwygProps, type TableDensity, UploadStatus, type UseTableStateOptions, type UseTableStateResult, createValidationSchema, getContrastTextColor, isLightColor, resolveCssColor, useClickOutside, useDebouncedSearch, useEditableRow, useFloatingPanel, useITTheme, useITThemeSafe, useTableState };
package/dist/index.d.ts CHANGED
@@ -19,6 +19,16 @@ interface UseDebouncedSearchResult {
19
19
  declare function useDebouncedSearch({ initialValue, debounceMs, onSearch, }: UseDebouncedSearchOptions): UseDebouncedSearchResult;
20
20
 
21
21
  type TableVariants = "default" | "striped" | "bordered";
22
+ /**
23
+ * Value stored for a single column filter.
24
+ *
25
+ * - `string | number | boolean` — text/number/boolean filters and catalog ids.
26
+ * - `Date` — a single-date filter (`Column.filter: "date"`).
27
+ * - `[Date | null, Date | null]` — a date-range filter (`Column.filter: "date-range"`).
28
+ */
29
+ type ColumnFilterValue = string | number | boolean | Date | [Date | null, Date | null];
30
+ /** Map of column `key` to its active filter value. */
31
+ type ColumnFilters = Record<string, ColumnFilterValue>;
22
32
  type TableSize = "sm" | "md" | "lg";
23
33
  /**
24
34
  * Cell padding / row-height preset for tables. Independent of `TableSize`
@@ -186,13 +196,13 @@ interface UseTableStateOptions {
186
196
  interface UseTableStateResult {
187
197
  currentPage: number;
188
198
  itemsPerPage: number;
189
- filters: Record<string, string | boolean | number>;
199
+ filters: ColumnFilters;
190
200
  sortConfig: SortConfig | null;
191
201
  totalPages: number;
192
202
  setTotalPages: (pages: number) => void;
193
203
  goToPage: (page: number) => void;
194
204
  handleItemsPerPageChange: (value: number) => void;
195
- handleFilterChange: (key: string, value: string | boolean | number | undefined) => void;
205
+ handleFilterChange: (key: string, value: ColumnFilterValue | undefined) => void;
196
206
  handleSort: (key: string, sortable?: boolean) => void;
197
207
  resetPage: () => void;
198
208
  clearFilters: () => void;
@@ -1123,6 +1133,17 @@ declare function ITConfirmDialog({ isOpen, onClose, onConfirm, title, message, c
1123
1133
 
1124
1134
  /** Data type of a table column, controls default rendering, filter UI, and sort comparison. */
1125
1135
  type ColumnType = "string" | "date" | "number" | "boolean" | "actions" | "catalog";
1136
+ /**
1137
+ * Per-column filter mode, set through `Column.filter`.
1138
+ *
1139
+ * - `true` — text/number input (or boolean toggle when `type: "boolean"`).
1140
+ * - `"catalog"` — `ITSelect` dropdown populated from `catalogOptions`.
1141
+ * - `"search"` — `ITSearchSelect` typeahead populated from `catalogOptions`
1142
+ * (respects `catalogOptions.onSearch` for server-side search).
1143
+ * - `"date"` — `ITDatePicker` single-date filter.
1144
+ * - `"date-range"` — `ITDatePicker` in range mode.
1145
+ */
1146
+ type ColumnFilterMode = boolean | "catalog" | "search" | "date" | "date-range";
1126
1147
  /** A single selectable entry for a `"catalog"`-type column's filter/value lookup. */
1127
1148
  interface CatalogOption {
1128
1149
  /** Unique identifier matched against the row's field value. */
@@ -1142,8 +1163,8 @@ interface Column<T = any> {
1142
1163
  currencyMX?: boolean;
1143
1164
  /** Custom action buttons/content rendered for a `"actions"`-type column. Receives the full row object. */
1144
1165
  actions?: (row: T) => React.ReactNode;
1145
- /** Enables per-column filtering. Pass `true` for a text/number/boolean filter matching `type`, or `"catalog"` to filter against `catalogOptions`. @default false */
1146
- filter?: boolean | "catalog";
1166
+ /** Enables per-column filtering. Pass `true` for a text/number/boolean filter matching `type`, `"catalog"` for an `ITSelect` fed by `catalogOptions`, `"search"` for an `ITSearchSelect` typeahead, or `"date"` / `"date-range"` for an `ITDatePicker`. @default false */
1167
+ filter?: ColumnFilterMode;
1147
1168
  /** Column data type. Drives default cell rendering, filter UI, and sort comparison. */
1148
1169
  type: ColumnType;
1149
1170
  /** Whether clicking the header sorts by this column. Ignored for `type: "actions"`. @default false */
@@ -1164,6 +1185,22 @@ interface Column<T = any> {
1164
1185
  loading?: boolean;
1165
1186
  /** Shows an error state in the filter UI when the catalog failed to load. @default false */
1166
1187
  error?: boolean;
1188
+ /**
1189
+ * Server-side search handler for a `filter: "search"` column. When provided,
1190
+ * `ITSearchSelect` delegates filtering to this callback (debounced) instead
1191
+ * of filtering `data` locally; the parent is expected to update `data`.
1192
+ */
1193
+ onSearch?: (query: string) => void;
1194
+ };
1195
+ /**
1196
+ * Date bounds applied by the `"date"` and `"date-range"` filters, forwarded to
1197
+ * the underlying `ITDatePicker`. Ignored by every other filter mode.
1198
+ */
1199
+ dateFilterOptions?: {
1200
+ /** Earliest selectable date. */
1201
+ minDate?: Date;
1202
+ /** Latest selectable date. */
1203
+ maxDate?: Date;
1167
1204
  };
1168
1205
  /**
1169
1206
  * Fixed column width. A `number` is treated as pixels (`width: 120` → `120px`);
@@ -1181,6 +1218,23 @@ interface Column<T = any> {
1181
1218
  * @default false
1182
1219
  */
1183
1220
  truncate?: boolean;
1221
+ /**
1222
+ * Pins this column to a horizontal edge so it stays visible while the table
1223
+ * scrolls sideways.
1224
+ *
1225
+ * - `"left"` — freezes the column flush to the left edge.
1226
+ * - `"right"` — freezes the column flush to the right edge.
1227
+ *
1228
+ * Omit to leave the column unpinned. When more than one column shares a side,
1229
+ * sticky offsets accumulate from each preceding pinned column's `width` /
1230
+ * `minWidth`; a column without a pixel width resolves to `0px`, so declare a
1231
+ * pixel `width` on every pinned column of that side to avoid overlap. The
1232
+ * pinned cell renders an opaque background (row background + row hover) and a
1233
+ * 1px separator shadow on its frozen edge.
1234
+ *
1235
+ * @default undefined (column not pinned)
1236
+ */
1237
+ pinned?: "left" | "right";
1184
1238
  }
1185
1239
  interface ITTableProps<T> {
1186
1240
  /** Column definitions: key, label, type, sortable behavior, filters, and custom rendering. */
@@ -1277,8 +1331,12 @@ interface ITDataTableFetchParams {
1277
1331
  page: number;
1278
1332
  /** Number of rows requested per page. */
1279
1333
  limit: number;
1280
- /** Active per-column filter values (from `Column.filter`), keyed by column `key`. */
1281
- filters: Record<string, string | number | boolean | Date>;
1334
+ /**
1335
+ * Active per-column filter values (from `Column.filter`), keyed by column
1336
+ * `key`. Scalars for text/number/boolean/date filters, a `Date` for
1337
+ * `filter: "date"`, and a `[start, end]` tuple for `filter: "date-range"`.
1338
+ */
1339
+ filters: ColumnFilters;
1282
1340
  /** Active sort, present only when the user has clicked a sortable column header. */
1283
1341
  sort?: {
1284
1342
  /** Column `key` currently sorted by. */
@@ -1314,7 +1372,7 @@ interface ITDataTableProps<T extends Record<string, unknown>> {
1314
1372
  * Filters managed outside of the ITDataTable (e.g. a date range picker).
1315
1373
  * These will be merged with the internal column filters before calling fetchData.
1316
1374
  */
1317
- externalFilters?: Record<string, string | number | boolean | Date>;
1375
+ externalFilters?: ColumnFilters;
1318
1376
  /**
1319
1377
  * Custom element to display instead of the default spinner while `isLoading` is true.
1320
1378
  */
@@ -2854,6 +2912,24 @@ interface ITNavigationSubItem {
2854
2912
  /** Whether this sub-item is currently active/highlighted. */
2855
2913
  isActive?: boolean;
2856
2914
  }
2915
+ /**
2916
+ * A titled group of sub-navigation items rendered under a parent menu.
2917
+ * Groups only add a visual heading: they are never clickable and never open
2918
+ * a third level (the sidebar supports exactly one level of nesting).
2919
+ */
2920
+ interface ITNavigationSubItemGroup {
2921
+ /** Unique identifier for the group. Used for the React key and the heading id. */
2922
+ id: string;
2923
+ /** Heading text rendered above the group's items. */
2924
+ label: string;
2925
+ /** Sub-items belonging to this group. Nesting a group inside a group is not supported. */
2926
+ items: ITNavigationSubItem[];
2927
+ }
2928
+ /**
2929
+ * A submenu entry: either a plain {@link ITNavigationSubItem} or a titled
2930
+ * {@link ITNavigationSubItemGroup}. Discriminate with `"items" in entry`.
2931
+ */
2932
+ type ITNavigationSubItemEntry = ITNavigationSubItem | ITNavigationSubItemGroup;
2857
2933
  /** A top-level navigation item, optionally with sub-items. */
2858
2934
  interface ITNavigationItem {
2859
2935
  /** Unique identifier. */
@@ -2866,8 +2942,12 @@ interface ITNavigationItem {
2866
2942
  action?: () => void;
2867
2943
  /** Whether this item is currently active/highlighted. */
2868
2944
  isActive?: boolean;
2869
- /** Nested sub-navigation items (renders as expandable submenu). */
2870
- subitems?: ITNavigationSubItem[];
2945
+ /**
2946
+ * Nested sub-navigation entries (renders as an expandable submenu).
2947
+ * Each entry is either a plain sub-item or a titled group of sub-items.
2948
+ * The field `items` is reserved for {@link ITNavigationSubItemGroup}.
2949
+ */
2950
+ subitems?: ITNavigationSubItemEntry[];
2871
2951
  /** Badge text displayed on the item (e.g. notification count). */
2872
2952
  badge?: string;
2873
2953
  }
@@ -3976,4 +4056,4 @@ declare const resolveCssColor: (colorStr: string, palette?: ITThemePalette$1, is
3976
4056
  */
3977
4057
  declare const getContrastTextColor: (bgColor: string, palette?: ITThemePalette$1, isDarkMode?: boolean) => "text-white" | "text-slate-800";
3978
4058
 
3979
- export { type Column, type FieldConfig, type FieldConfigV2, FileTypeEnum, ITAccordion, type ITAccordionItem, type ITAccordionProps, ITAlert, type ITAlertProps, ITAvatar, type ITAvatarProps, ITBadget, type ITBadgetProps, type ITBreadcrumbItem, ITBreadcrumbs, type ITBreadcrumbsProps, ITButton, type ITButtonProps, ITCalendar, type ITCalendarProps, ITCard, type ITCardProps, ITCheckbox, type ITCheckboxProps, ITChip, ITChipInput, type ITChipInputProps, type ITChipProps, ITConfirmDialog, type ITConfirmDialogProps, ITDataTable, type ITDataTableFetchParams, type ITDataTableProps, type ITDataTableResponse, ITDatePicker, type ITDatePickerProps, ITDialog, type ITDialogProps, ITDivider, type ITDividerProps, ITDrawer, type ITDrawerProps, ITDropdownMenu, type ITDropdownMenuItem, type ITDropdownMenuProps, ITDropfile, ITEmptyState, type ITEmptyStateProps, ITField, type ITFieldProps, ITFlex, type ITFlexProps, ITFormBuilder, type ITFormBuilderProps, ITFormHeader, type ITFormHeaderProps, ITGrid, type ITGridProps, ITImage, type ITImageProps, ITInput, type ITInputProps, ITLayout, type ITLayoutProps, ITLoader, type LoaderProps as ITLoaderProps, ITMaskedInput, type ITMaskedInputProps, ITMultiSelect, type ITMultiSelectOption, type ITMultiSelectProps, ITNavbar, type ITNavbarProps, type ITNavigationItem, type ITNavigationSubItem, ITPage, ITPageHeader, type ITPageHeaderProps, type ITPageProps, ITPagination, type ITPaginationProps, ITPopover, type ITPopoverProps, ITProgress, type ITProgressProps, ITRadioGroup, type ITRadioGroupProps, type ITRadioOption, ITSearchSelect, type ITSearchSelectProps, ITSearchTable, type ITSearchTableProps, ITSegmentedControl, type ITSegmentedControlProps, ITSelect, type ITSelectProps, ITSidebar, type ITSidebarProps, ITSkeleton, type ITSkeletonProps, ITSlideToggle, type ITSlideToggleProps, ITSlider, type ITSliderProps, ITStack, type ITStackProps, ITStatCard, type ITStatCardProps, ITStepper, type ITStepperProps, type ITTabItem, ITTable, type ITTableProps, ITTabs, type ITTabsProps, ITText, type ITTextProps, ITTextarea, type ITTextareaProps, type ITThemeConfig, type ITThemePalette$1 as ITThemePalette, ITThemeProvider, type ITThemeProviderProps, ITTimePicker, type ITTimePickerProps, ITToast, type ITToastProps, ITTripleFilter, type ITTripleFilterOption, type ITTripleFilterProps, ITWysiwyg, type ITWysiwygProps, type TableDensity, UploadStatus, type UseTableStateOptions, type UseTableStateResult, createValidationSchema, getContrastTextColor, isLightColor, resolveCssColor, useClickOutside, useDebouncedSearch, useEditableRow, useFloatingPanel, useITTheme, useITThemeSafe, useTableState };
4059
+ export { type Column, type ColumnFilterMode, type ColumnFilterValue, type ColumnFilters, type FieldConfig, type FieldConfigV2, FileTypeEnum, ITAccordion, type ITAccordionItem, type ITAccordionProps, ITAlert, type ITAlertProps, ITAvatar, type ITAvatarProps, ITBadget, type ITBadgetProps, type ITBreadcrumbItem, ITBreadcrumbs, type ITBreadcrumbsProps, ITButton, type ITButtonProps, ITCalendar, type ITCalendarProps, ITCard, type ITCardProps, ITCheckbox, type ITCheckboxProps, ITChip, ITChipInput, type ITChipInputProps, type ITChipProps, ITConfirmDialog, type ITConfirmDialogProps, ITDataTable, type ITDataTableFetchParams, type ITDataTableProps, type ITDataTableResponse, ITDatePicker, type ITDatePickerProps, ITDialog, type ITDialogProps, ITDivider, type ITDividerProps, ITDrawer, type ITDrawerProps, ITDropdownMenu, type ITDropdownMenuItem, type ITDropdownMenuProps, ITDropfile, ITEmptyState, type ITEmptyStateProps, ITField, type ITFieldProps, ITFlex, type ITFlexProps, ITFormBuilder, type ITFormBuilderProps, ITFormHeader, type ITFormHeaderProps, ITGrid, type ITGridProps, ITImage, type ITImageProps, ITInput, type ITInputProps, ITLayout, type ITLayoutProps, ITLoader, type LoaderProps as ITLoaderProps, ITMaskedInput, type ITMaskedInputProps, ITMultiSelect, type ITMultiSelectOption, type ITMultiSelectProps, ITNavbar, type ITNavbarProps, type ITNavigationItem, type ITNavigationSubItem, type ITNavigationSubItemEntry, type ITNavigationSubItemGroup, ITPage, ITPageHeader, type ITPageHeaderProps, type ITPageProps, ITPagination, type ITPaginationProps, ITPopover, type ITPopoverProps, ITProgress, type ITProgressProps, ITRadioGroup, type ITRadioGroupProps, type ITRadioOption, ITSearchSelect, type ITSearchSelectProps, ITSearchTable, type ITSearchTableProps, ITSegmentedControl, type ITSegmentedControlProps, ITSelect, type ITSelectProps, ITSidebar, type ITSidebarProps, ITSkeleton, type ITSkeletonProps, ITSlideToggle, type ITSlideToggleProps, ITSlider, type ITSliderProps, ITStack, type ITStackProps, ITStatCard, type ITStatCardProps, ITStepper, type ITStepperProps, type ITTabItem, ITTable, type ITTableProps, ITTabs, type ITTabsProps, ITText, type ITTextProps, ITTextarea, type ITTextareaProps, type ITThemeConfig, type ITThemePalette$1 as ITThemePalette, ITThemeProvider, type ITThemeProviderProps, ITTimePicker, type ITTimePickerProps, ITToast, type ITToastProps, ITTripleFilter, type ITTripleFilterOption, type ITTripleFilterProps, ITWysiwyg, type ITWysiwygProps, type TableDensity, UploadStatus, type UseTableStateOptions, type UseTableStateResult, createValidationSchema, getContrastTextColor, isLightColor, resolveCssColor, useClickOutside, useDebouncedSearch, useEditableRow, useFloatingPanel, useITTheme, useITThemeSafe, useTableState };