@emporix/component-library 1.13.5 → 2.0.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.
package/README.md CHANGED
@@ -271,23 +271,19 @@ function ConfirmDialogExample() {
271
271
  | draggable | boolean | false | Allows dragging the dialog by its header |
272
272
  | data-testid | string | - | Test ID on the dialog root |
273
273
 
274
- Requires PrimeReact base CSS and a theme in the host app.
274
+ Requires only `@emporix/component-library/styles` (PrimeReact theme CSS is bundled).
275
275
 
276
276
  ### DataTable
277
277
 
278
278
  Encapsulated data table built on [PrimeReact DataTable](https://primereact.org/datatable/). Styles are scoped via CSS modules. Pass `columns`, optional controlled `pagination`, selection, `rowActions`, and an `emptyTemplate` for empty results.
279
279
 
280
- Import `@emporix/component-library/styles` once in your app entry, plus PrimeReact base CSS, a theme, and `primeicons` (required for paginator/sort icons).
280
+ Import `@emporix/component-library/styles` once in your app entry. Pattern B PrimeReact (base CSS, saga-blue theme, and primeicons) is included in that stylesheet — no separate `primereact` install or CSS imports.
281
281
 
282
282
  ```tsx
283
283
  import { useMemo, useState } from 'react'
284
- import { FilterMatchMode } from 'primereact/api'
285
- import { DataTable } from '@emporix/component-library'
284
+ import { DataTable, FilterMatchMode } from '@emporix/component-library'
286
285
  import type { DataTablePaginationState } from '@emporix/component-library'
287
286
  import '@emporix/component-library/styles'
288
- import 'primereact/resources/primereact.css'
289
- import 'primereact/resources/themes/saga-blue/theme.css'
290
- import 'primeicons/primeicons.css'
291
287
 
292
288
  const columns = [
293
289
  {
@@ -733,6 +729,27 @@ import { Message } from '@emporix/component-library'
733
729
  | className | string | - | Additional CSS class on the root element |
734
730
  | data-testid | string | - | Test ID for testing |
735
731
 
732
+ ### ProgressSpinner
733
+
734
+ Indeterminate loading spinner for overlays and blocking states. Pattern A (no PrimeReact dependency). API inspired by [PrimeReact ProgressSpinner](https://primereact.org/progressspinner/).
735
+
736
+ ```tsx
737
+ import { ProgressSpinner } from '@emporix/component-library'
738
+
739
+ <ProgressSpinner />
740
+ <ProgressSpinner size="2rem" aria-label="Saving" />
741
+ ```
742
+
743
+ #### Props
744
+
745
+ | Prop | Type | Default | Description |
746
+ | ----------- | ------ | --------- | ------------------------------------ |
747
+ | size | string | `50px` | Diameter of the spinner (CSS length) |
748
+ | strokeWidth | string | `4` | Stroke width of the spinner ring |
749
+ | aria-label | string | `Loading` | Accessible label for screen readers |
750
+ | className | string | - | Additional CSS class on the root |
751
+ | data-testid | string | - | Test ID for the root element |
752
+
736
753
  ### Accordion
737
754
 
738
755
  Collapsible content panels grouped in tabs.
@@ -1117,7 +1134,7 @@ Cursor loads the skill automatically when your request matches its description (
1117
1134
  1. **Audit** — find consumers, related SCSS, and PrimeReact dependencies in MD
1118
1135
  2. **Ask you to choose a pattern** (required before any implementation)
1119
1136
  - **Pattern A (custom):** boilerplate + SCSS modules + **same API as PrimeReact** — e.g. `Dropdown`, `InputText`, `SelectButton` (no `primereact` dependency)
1120
- - **Pattern B (PrimeReact wrapper):** encapsulated `primereact/*` + scoped overrides — e.g. `Toast`, `DataTable`
1137
+ - **Pattern B (PrimeReact wrapper):** encapsulated `primereact/*` + scoped overrides; Prime is a library **dependency** (bundled) — e.g. `Toast`, `DataTable`
1121
1138
  3. **Implement in component-library** — component folder, tests, Storybook, exports, version bump
1122
1139
  4. **Wire consumer app** — import library component directly in pilot views **or** add a thin `Md*` wrapper; leave existing `Md*` unchanged for unmigrated screens; import `@emporix/component-library/styles`
1123
1140
  5. **Verify** — `npm run lint`, `npm run test -- --run`, `npm run build:lib` (library); build and manual QA in MD
@@ -1,6 +1,8 @@
1
1
  export { DataTable } from './DataTable';
2
2
  export { DataTableEmptyState, DEFAULT_DATA_TABLE_EMPTY_MESSAGE, } from './DataTableEmptyState';
3
- export type { DataTableProps, DataTablePaginationState, DataTableColumnProps, } from './types';
3
+ export type { DataTableProps, DataTablePaginationState, DataTableColumnProps, DataTableFilterMeta, DataTableFilterMetaData, DataTableFilterMetaOperator, DataTableFilterConstraint, DataTableFilterEvent, DataTableSortEvent, DataTablePageEvent, DataTableSortOrder, } from './types';
4
4
  export { useDataTablePagination, DEFAULT_DATA_TABLE_PAGINATION, } from './useDataTablePagination';
5
5
  export type { DataTableFilters } from './useDataTablePagination';
6
+ export { FilterMatchMode } from 'primereact/api';
7
+ export type { ColumnFilterElementTemplateOptions as DataTableColumnFilterElementOptions } from 'primereact/column';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/datatable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/datatable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,YAAY,EAAE,kCAAkC,IAAI,mCAAmC,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,31 @@
1
+ export interface ProgressSpinnerProps {
2
+ /**
3
+ * Diameter of the spinner. CSS length (e.g. `2rem`, `50px`).
4
+ * @default '50px'
5
+ */
6
+ size?: string;
7
+ /**
8
+ * Stroke width of the spinner ring.
9
+ * @default '4'
10
+ */
11
+ strokeWidth?: string;
12
+ /**
13
+ * Accessible label announced by screen readers.
14
+ * @default 'Loading'
15
+ */
16
+ 'aria-label'?: string;
17
+ /**
18
+ * Additional CSS class name for the root.
19
+ */
20
+ className?: string;
21
+ /**
22
+ * Test ID for testing.
23
+ */
24
+ 'data-testid'?: string;
25
+ }
26
+ /**
27
+ * Indeterminate loading spinner. Pattern A — no PrimeReact dependency.
28
+ * API inspired by [PrimeReact ProgressSpinner](https://primereact.org/progressspinner/).
29
+ */
30
+ export declare const ProgressSpinner: ({ size, strokeWidth, "aria-label": ariaLabel, className, "data-testid": testId, }: ProgressSpinnerProps) => import("react/jsx-runtime").JSX.Element;
31
+ //# sourceMappingURL=ProgressSpinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressSpinner.d.ts","sourceRoot":"","sources":["../../../src/components/progressspinner/ProgressSpinner.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,mFAM7B,oBAAoB,4CA2BtB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { ProgressSpinner } from './ProgressSpinner';
2
+ export type { ProgressSpinnerProps } from './ProgressSpinner';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/progressspinner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -40,7 +40,9 @@ export { Menu } from './components/menu';
40
40
  export type { MenuProps, MenuItem, MenuRef } from './components/menu';
41
41
  export { Message } from './components/message/Message';
42
42
  export type { MessageProps, MessageSeverity, } from './components/message/Message';
43
- export { DataTable, DataTableEmptyState, DEFAULT_DATA_TABLE_EMPTY_MESSAGE, useDataTablePagination, } from './components/datatable';
44
- export type { DataTableProps, DataTablePaginationState, DataTableColumnProps, DataTableFilters, } from './components/datatable';
43
+ export { DataTable, DataTableEmptyState, DEFAULT_DATA_TABLE_EMPTY_MESSAGE, useDataTablePagination, FilterMatchMode, } from './components/datatable';
44
+ export type { DataTableProps, DataTablePaginationState, DataTableColumnProps, DataTableFilters, DataTableFilterMeta, DataTableFilterMetaData, DataTableFilterMetaOperator, DataTableFilterConstraint, DataTableFilterEvent, DataTableSortEvent, DataTablePageEvent, DataTableSortOrder, DataTableColumnFilterElementOptions, } from './components/datatable';
45
45
  export { DEFAULT_DATA_TABLE_PAGINATION } from './components/datatable';
46
+ export { ProgressSpinner } from './components/progressspinner';
47
+ export type { ProgressSpinnerProps } from './components/progressspinner';
46
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAEhF,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,YAAY,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,wCAAwC,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC3E,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,YAAY,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAGtE,OAAO,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}