@dataworkz/crystal 0.1.0-beta.1 → 0.1.0-beta.11

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/CHANGELOG.md CHANGED
@@ -2,6 +2,140 @@
2
2
 
3
3
  All notable changes to this package. Versions follow [semver](https://semver.org); betas may still change the API.
4
4
 
5
+ ## 0.1.0-beta.11 — 2026-11-05
6
+
7
+ ### Added
8
+ - `dw-select` / `dw-multiselect` `variant="plain"`: reads as the text around it (a table cell, a sentence), no border,
9
+ fill or start padding until hovered; the focus ring stays.
10
+
11
+ ### Changed
12
+ - `provideCrystal()` sets PrimeNG up itself (crystal's preset, dark mode, z-index layers, pass-through defaults), so an
13
+ app needs only `provideCrystal()`. `CrystalConfig.primeng` takes PrimeNG settings to merge over crystal's, or
14
+ `false`. The preset and `provideCrystalPrimeNG()` move to the main entry point; `@dataworkz/crystal/primeng` still
15
+ re-exports them. An app that calls both drops `provideCrystalPrimeNG()`.
16
+ - The empty PrimeNG host inside `dw-menu` and `dw-popover` takes no layout (`display: contents`), so a menu or
17
+ popover in a flex row adds no gap of its own.
18
+
19
+ ## 0.1.0-beta.10 — 2026-11-05
20
+
21
+ ### Added
22
+ - `dw-accordion` / `dw-accordion-panel` (`DW_ACCORDION`): one or several open panels, `flush` and `card` variants, rich
23
+ headers (`dwAccordionHeader`) with controls that don't toggle (`dwAccordionHeaderAction`), lazy content
24
+ (`dwAccordionContent`), `opened` / `closed` once the animation is over.
25
+ - `dw-stepper`: a wizard's step list (done / current / upcoming), `linear`, `md` / `sm`, `framed`, `doneIcon`.
26
+ Crystal-native.
27
+ - `dw-autocomplete`: a form control that suggests as you type, free text or `forceSelection`, an item template, the
28
+ list as wide as the field by default.
29
+ - `dw-slider`: a number form control between `min` and `max`.
30
+ - `dw-splitter`: resizable panes with sizes, minimum sizes and remembered sizes (compatible with what `p-splitter`
31
+ saved), on `dw-resizer`.
32
+ - `dw-table`: `DwSortMeta`, `DwSortEvent` and `DwSortChange` type `multiSortMeta`, `sortFunction` and `sortChange`
33
+ (they were PrimeNG's types, or `unknown`). Same shapes.
34
+
35
+ ## 0.1.0-beta.9 — 2026-11-05
36
+
37
+ ### Added
38
+ - `dw-tree` `size="sm"`: compact rows (a smaller toggle, padding and type), for a sidebar or a narrow panel.
39
+ - `dw-tree` `marker`: an accent bar at the start of the selected row, as `dw-nav-list`'s `marker`.
40
+
41
+ ## 0.1.0-beta.8 — 2026-11-05
42
+
43
+ ### Added
44
+ - `dw-tree` and `DwTreeNode`: a tree over PrimeNG's Tree, selecting one node, several, or checkboxes (a parent checks
45
+ its children), with children loaded when a node opens, a node template (`dwTreeNode`), `scrollHeight`, and a
46
+ `contextMenu`. It has no box of its own; `framed` draws one. Replaces PrimeNG's Tree and ContextMenu in apps.
47
+ - `dw-menu` `openAt(event, context?)`: opens the menu as a context menu, at the pointer and inside the viewport, its
48
+ commands receiving `context` (what was right-clicked).
49
+
50
+ ## 0.1.0-beta.7 — 2026-11-05
51
+
52
+ ### Added
53
+ - `dw-date-picker` `flush`: an inline calendar without its own border, fill, radius or padding, so it sits on a popover's
54
+ or panel's surface. Screens no longer reach into the calendar's PrimeNG classes for it.
55
+
56
+ ### Fixed
57
+ - An inline `dw-date-picker` with `fluid` fills its container; it kept the calendar's own width. A field picker, and an
58
+ inline one without `fluid`, are unchanged.
59
+
60
+ ## 0.1.0-beta.6 — 2026-11-05
61
+
62
+ ### Added
63
+ - `dw-date-picker`: date, date-time (to the second) and range picking, as a field or an inline calendar, on the shared
64
+ form-control base (ngModel, reactive forms, `[(value)]`). Replaces PrimeNG's DatePicker in apps.
65
+ - `dw-chart`: a chart.js chart (`line`, `bar`, `doughnut`…) over PrimeNG's Chart, with chart.js's own `data` and
66
+ `options`. A new `type`, size or `plugins` builds the chart again, as new `data` or `options` do.
67
+ - chart.js is a crystal dependency, so an app drops it from its own package.json.
68
+
69
+ ### Changed
70
+ - The form controls no longer write the user's own change back into their PrimeNG control (as ngModel doesn't). The
71
+ control has the value already; a date picker written its own value turned its calendar to that date's month.
72
+
73
+ ## 0.1.0-beta.5 — 2026-11-04
74
+
75
+ ### Added
76
+ - `dwTooltipVariant="preview"`: a long value shown whole, up to 720 × 340px, then scrolled (line breaks kept). Pair it
77
+ with `dwTooltipInteractive` so the pointer can scroll it.
78
+ - `dw-select` / `dw-multiselect` `baseZIndex`: stacks the list above a layer that sets its own z-index (as dw-dialog /
79
+ dw-drawer / dw-popover's `baseZIndex`).
80
+ - `dw-checkbox` `option`: one box of a set that fills one array (ticked while the array holds the option; a click adds
81
+ or removes it). `DwCheckboxComponent` is generic (`<T = boolean>`); a plain checkbox is unchanged.
82
+ - `DW_PRIMENG_Z_INDEX`, the z-index bases `provideCrystalPrimeNG()` installs.
83
+ - `styles/icons.css`: the PrimeIcons font on its own, for an app that imports crystal's styles file by file (crystal.css
84
+ and crystal-no-fonts.css import it). With it, an app drops primeicons from its own package.json and build.
85
+
86
+ ### Changed
87
+ - Tooltips stack from a 5000 base instead of PrimeNG's 1100, so they also clear layers that set their own z-index (they
88
+ already cleared PrimeNG's own overlays). An app's `zIndex` setting still wins. The `code` variant's CSS `z-index`
89
+ (which PrimeNG's inline z-index always overrode) is gone.
90
+
91
+ ## 0.1.0-beta.4 — 2026-11-04
92
+
93
+ ### Added
94
+ - `dw-select` / `dw-multiselect` `open()` and `close()`: open the list from code (an editable select whose text opens it).
95
+ - `[dwTooltipInteractive]`: the tooltip stays open while the pointer moves onto it, so its text can be copied.
96
+
97
+ ### Fixed
98
+ - `dw-field` gives a `dw-select`, `dw-multiselect` or `dw-number-input` its full width, as it did the PrimeNG controls.
99
+ - `dw-switch`, `dw-radio`, `dw-number-input` and `dw-multiselect` no longer take focus when a page opens (and scroll it to
100
+ themselves): PrimeNG's AutoFocus put `autofocus="true"` on their input unless told `false`.
101
+ - The form controls drive their PrimeNG control without subscribing to PrimeNG's own signals: a write that changed one
102
+ of them could have re-run the write without end.
103
+
104
+ ## 0.1.0-beta.3 — 2026-11-04
105
+
106
+ The first step of taking PrimeNG out of apps (docs/PRIMENG-REMOVAL.md): crystal's own form controls, and crystal owns
107
+ PrimeNG.
108
+
109
+ ### Breaking
110
+ - `primeng`, `@primeng/themes` and `primeicons` are crystal **dependencies**, no longer peers: an app removes them from
111
+ its own `package.json` (and PrimeIcons' CSS from its build: crystal's stylesheet loads it).
112
+
113
+ ### Added
114
+ - `dwInput` on `<input>` / `<textarea>` (`DW_INPUT`): `size` (`sm|md|lg`), `fluid`, `invalid`, `autoResize`.
115
+ - `[dwTooltip]`: `dwTooltipPosition` (`top` by default), `dwTooltipDelay`, `dwTooltipVariant`
116
+ (`multiline|code|error|toolbar`), `dwTooltipDisabled`.
117
+ - `dw-select` (+ `dwSelectOption`, `dwSelectValue`, `dwSelectFooter` templates) and `dw-multiselect`.
118
+ - `dw-checkbox`, `dw-radio`, `dw-switch` (`xs|sm|md`), `dw-number-input`.
119
+ - All of them work with ngModel, reactive forms or `[(value)]`, show invalid once touched or dirty, emit `changed` for
120
+ the user's change only, and keep the look of the PrimeNG controls they replace. `DwFormControl` is their base.
121
+ - `dw-icon pi="<name>"`: a PrimeIcons glyph, typed by `DwPrimeIcon` (from the installed font); `spin` and `label` on
122
+ every dw-icon.
123
+
124
+ ### Changed
125
+ - `dw-icon`'s `name` is optional (give `name` or `pi`).
126
+ - `dw-field` docs and every crystal story use crystal controls; `dw-field` keeps a `dw-switch` / `dw-checkbox` /
127
+ `dw-radio` at its own width, as it did PrimeNG's.
128
+
129
+ ## 0.1.0-beta.2 — 2026-11-04
130
+
131
+ ### Fixed
132
+ - Small selects get small options wherever their list is appended: `provideCrystalPrimeNG()` now adds
133
+ `dw-select-panel--sm` to the overlay of every `p-select` / `p-multiselect` with `size="small"`, through PrimeNG's
134
+ pass-through (`DW_PRIMENG_PT`, exported). Lists appended to `<body>` used to keep the 14px rows; screens no longer
135
+ set the class by hand. An app's own `pt` settings are merged over crystal's.
136
+ - A selected `dw-icon-button` with `variant="danger"` stays danger red instead of switching to the accent (e.g. a
137
+ "not helpful" rating). Every other variant's selected state is unchanged.
138
+
5
139
  ## 0.1.0-beta.1 — 2026-11-04
6
140
 
7
141
  The package is now product-neutral: no app type ids, app-only CSS or app validator messages ship in it. An app maps
@@ -361,7 +361,7 @@ const MIME_BY_EXTENSION = {
361
361
  m4a: 'audio/m4a',
362
362
  flac: 'audio/flac',
363
363
  };
364
- /** File-type icons, inlined as data URIs (icons/svg/files/<key>.svg). */
364
+ /** File-type icons, inlined as data URIs (icons/svg/files/`<key>`.svg). */
365
365
  const FILE_TYPE_ICON_PATHS = {
366
366
  word: DW_LOGO_URIS['files/word'],
367
367
  text: DW_LOGO_URIS['files/text'],