origam 2.18.16 → 2.18.18
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 +839 -0
- package/dist/src/assets/css/main.css +1 -1
- package/dist/src/assets/css/tokens/dark.css +150 -26
- package/dist/src/assets/css/tokens/light.css +75 -13
- package/dist/src/assets/scss/tokens/_dark.scss +150 -26
- package/dist/src/assets/scss/tokens/_light.scss +75 -13
- package/dist/src/components/Btn/OrigamBtn.vue +39 -2
- package/dist/src/components/Btn/OrigamBtnGroup.vue +5 -0
- package/dist/src/components/DataTable/OrigamDataTable.vue +1 -1
- package/dist/src/components/DataTable/OrigamDataTableColumnCell.vue +3 -3
- package/dist/src/components/DataTable/OrigamDataTableGroupHeaderRow.vue +11 -4
- package/dist/src/components/DataTable/OrigamDataTableHeaderCell.vue +1 -1
- package/dist/src/components/DataTable/OrigamDataTableRow.vue +6 -1
- package/dist/src/components/DataTable/OrigamDataTableRows.vue +3 -3
- package/dist/src/components/Grid/OrigamGrid.vue +19 -0
- package/dist/src/components/List/OrigamListItem.vue +7 -0
- package/dist/src/components/List/OrigamListSubheader.vue +5 -0
- package/dist/src/components/Pagination/OrigamPagination.vue +64 -2
- package/dist/src/components/Toolbar/OrigamToolbar.vue +58 -0
- package/dist/src/composables/Commons/defaults.composable.d.ts +51 -0
- package/dist/src/composables/DataTable/headers.composable.d.ts +4 -4
- package/dist/src/consts/EmptyState/empty-state.const.d.ts +2 -16
- package/dist/src/interfaces/Commons/installed-theme.interface.cjs +1 -0
- package/dist/src/interfaces/Commons/installed-theme.interface.d.ts +26 -0
- package/dist/src/interfaces/Commons/installed-theme.interface.js +0 -0
- package/dist/src/interfaces/Commons/semantic-tree.interface.cjs +1 -0
- package/dist/src/interfaces/Commons/semantic-tree.interface.d.ts +30 -0
- package/dist/src/interfaces/Commons/semantic-tree.interface.js +0 -0
- package/dist/src/interfaces/Commons/theme.interface.d.ts +1 -1
- package/dist/src/interfaces/EmptyState/empty-state.interface.d.ts +13 -0
- package/dist/src/interfaces/index.cjs +22 -0
- package/dist/src/interfaces/index.d.ts +2 -0
- package/dist/src/interfaces/index.js +2 -0
- package/dist/src/types/Commons/installed-theme.type.d.ts +2 -27
- package/dist/src/types/Commons/semantic-tree.type.d.ts +0 -29
- package/dist/src/types/tokens.type.d.ts +1 -1
- package/dist/src/utils/Commons/apply-theme.util.d.ts +1 -1
- package/package.json +1 -1
|
@@ -685,6 +685,13 @@ defineExpose({
|
|
|
685
685
|
}
|
|
686
686
|
|
|
687
687
|
&__overlay {
|
|
688
|
+
// ⛔ C2 (#597, deja tranche en PR #586) — `--origam-list-item__overlay
|
|
689
|
+
// ---background-color` et `---transition-timing-function` restent NON
|
|
690
|
+
// DECLARES, a dessein : leur second echelon
|
|
691
|
+
// (`--origam-list__item---overlay-*`) est, lui, declare et type
|
|
692
|
+
// (`TTokenName`). Declarer le premier echelon a `:root` le figerait et
|
|
693
|
+
// MASQUERAIT DEFINITIVEMENT ce crochet de theming public. La garde
|
|
694
|
+
// compare des noms, pas des chaines de repli : faux positif, pas dette.
|
|
688
695
|
background-color: var(--origam-list-item__overlay---background-color, var(--origam-list__item---overlay-background-color, currentColor));
|
|
689
696
|
border-radius: var(--origam-list-item__overlay---border-radius, inherit);
|
|
690
697
|
opacity: var(--origam-list-item__overlay---opacity, var(--origam-list__item---overlay-opacity, 0));
|
|
@@ -133,6 +133,11 @@ defineExpose({
|
|
|
133
133
|
background: inherit;
|
|
134
134
|
color: var(--origam-list-subheader---color, var(--origam-color__text---secondary));
|
|
135
135
|
display: flex;
|
|
136
|
+
// ⛔ C2 (#597, deja tranche en PR #586) — `--origam-list-subheader
|
|
137
|
+
// ---font-size` reste NON DECLARE, a dessein : il est ECRIT PAR LE PARENT
|
|
138
|
+
// (`OrigamList.vue`, variante `nav`) et son second echelon
|
|
139
|
+
// `--origam-list__subheader---font-size` est declare et type. Le declarer a
|
|
140
|
+
// `:root` masquerait definitivement ce second crochet.
|
|
136
141
|
font-size: var(--origam-list-subheader---font-size, var(--origam-list__subheader---font-size, 0.875rem));
|
|
137
142
|
font-weight: var(--origam-list-subheader---font-weight, 400);
|
|
138
143
|
line-height: var(--origam-list-subheader---line-height, 1.375rem);
|
|
@@ -629,12 +629,25 @@ defineExpose({
|
|
|
629
629
|
}
|
|
630
630
|
|
|
631
631
|
&--colored {
|
|
632
|
+
// ⛔ #596 — these two READ the `--primary` state tokens, not a
|
|
633
|
+
// `-colored` suffix. The sheets have always declared
|
|
634
|
+
// `--origam-pagination--primary---{background-color,color}` with
|
|
635
|
+
// exactly the values below as their value, while this block read
|
|
636
|
+
// `--origam-pagination---{background-color,color}-colored` — two
|
|
637
|
+
// grammars whose names never coincide, so the declaration was
|
|
638
|
+
// dormant and the fallback did all the work (the #550 defect
|
|
639
|
+
// shape). Renaming the READ side rather than duplicating the
|
|
640
|
+
// declaration keeps ONE grammar — `--{state}---{property}` — and
|
|
641
|
+
// matches `--origam-pagination--primary---box-shadow` three lines
|
|
642
|
+
// below, which this file already reads correctly. Rendering is
|
|
643
|
+
// unchanged: declared value == the fallback it replaces, in light
|
|
644
|
+
// and in dark.
|
|
632
645
|
--bg-base: var(
|
|
633
|
-
--origam-pagination---background-color
|
|
646
|
+
--origam-pagination--primary---background-color,
|
|
634
647
|
var(--origam-color__action--primary---bg)
|
|
635
648
|
);
|
|
636
649
|
--fg-base: var(
|
|
637
|
-
--origam-pagination---color
|
|
650
|
+
--origam-pagination--primary---color,
|
|
638
651
|
var(--origam-color__action--primary---fg)
|
|
639
652
|
);
|
|
640
653
|
|
|
@@ -651,6 +664,20 @@ defineExpose({
|
|
|
651
664
|
|
|
652
665
|
// Hover state — derived: 20 % darker than --bg-base.
|
|
653
666
|
// Consumer can override via --origam-pagination---background-color-hover.
|
|
667
|
+
//
|
|
668
|
+
// ⛔ #596 — `--origam-pagination---color-hover` STAYS UNDECLARED in the
|
|
669
|
+
// token sheets, deliberately. Its fallback is `var(--fg-base)`, and
|
|
670
|
+
// `--fg-base` is synthesised PER INSTANCE on `.origam-pagination`
|
|
671
|
+
// itself (line ~800, and repointed by `&--colored`). A custom
|
|
672
|
+
// property's computed value is its specified value with `var()`
|
|
673
|
+
// ALREADY substituted ON THE DECLARING ELEMENT — so a `:root`
|
|
674
|
+
// declaration of `var(--fg-base)` would be substituted where
|
|
675
|
+
// `--fg-base` does not exist, become guaranteed-invalid, and every
|
|
676
|
+
// read would fall straight back to the inline fallback again. The
|
|
677
|
+
// rendering would be byte-identical and the guard would go green on a
|
|
678
|
+
// channel that does nothing: a lie, not a fix. It therefore stays in
|
|
679
|
+
// `baseline/token-var-channels.json` as a known false positive — the
|
|
680
|
+
// guard compares NAMES, not fallback chains.
|
|
654
681
|
:deep(.origam-btn:hover:not(.origam-btn--active)) {
|
|
655
682
|
--origam-btn---background-color: var(
|
|
656
683
|
--origam-pagination---background-color-hover,
|
|
@@ -683,6 +710,41 @@ defineExpose({
|
|
|
683
710
|
|
|
684
711
|
// Active state — derived: 30 % darker than --bg-base.
|
|
685
712
|
// Consumer can override via the matching `is-active` vars.
|
|
713
|
+
//
|
|
714
|
+
// ⛔ #596 — of the four `--item--is-active---*` channels read below,
|
|
715
|
+
// only `---border-color` is declared in the token sheets (its fallback
|
|
716
|
+
// is the plain literal `transparent`). The other three STAY UNDECLARED
|
|
717
|
+
// on purpose, each for a measured reason:
|
|
718
|
+
//
|
|
719
|
+
// • `---color` falls back to `var(--fg-base)` — synthesised per
|
|
720
|
+
// instance, so a `:root` declaration is guaranteed-invalid and
|
|
721
|
+
// inert (same mechanism as the hover block above). Worse, the
|
|
722
|
+
// sheets carry a DORMANT near-twin under the other grammar,
|
|
723
|
+
// `--origam-pagination__item---active-color:
|
|
724
|
+
// var(--origam-color__action--primary---fg)` = WHITE. "Renaming"
|
|
725
|
+
// that declaration onto this read — the #550 reflex — would paint
|
|
726
|
+
// the active page label white on the untinted (transparent /
|
|
727
|
+
// white) surface of uncolored mode: invisible. Exactly the
|
|
728
|
+
// BottomNav trap: a name that reads right and inverts the render.
|
|
729
|
+
//
|
|
730
|
+
// • `---background-color` is read TWICE with two DIFFERENT fallbacks
|
|
731
|
+
// — `color-mix(… var(--bg-base), black 30%)` here, and
|
|
732
|
+
// `var(--origam-color__neutral---200, #e6e6e6)` on the overlay
|
|
733
|
+
// below. No single declaration preserves both, and its dormant
|
|
734
|
+
// twin `--origam-pagination__item---active-background-color` is
|
|
735
|
+
// `action--primary---bg`, which matches neither. The overlay value
|
|
736
|
+
// is the one a user-reported defect was fixed to (652a770e, then
|
|
737
|
+
// cb10d654) — re-pointing it is a design decision, not a wiring
|
|
738
|
+
// one.
|
|
739
|
+
//
|
|
740
|
+
// • `---active-overlay-opacity` is likewise read twice, with `1` on
|
|
741
|
+
// the uncolored branch and `0` on the colored one — opposite
|
|
742
|
+
// defaults by design, so no root value can hold both (its dormant
|
|
743
|
+
// twin says `0.12`, which is neither).
|
|
744
|
+
//
|
|
745
|
+
// All three stay in `baseline/token-var-channels.json`. A theme can
|
|
746
|
+
// still set them: an override lands on an element inside the
|
|
747
|
+
// component, where `--bg-base` / `--fg-base` DO resolve.
|
|
686
748
|
&__item--is-active :deep(.origam-btn) {
|
|
687
749
|
--origam-btn---background-color: var(
|
|
688
750
|
--origam-pagination__item--is-active---background-color,
|
|
@@ -229,6 +229,22 @@ defineExpose({
|
|
|
229
229
|
// the toolbar's own gutter (16 px) with whatever the layout
|
|
230
230
|
// reserved on each side (defaults to 0 when no layout item is
|
|
231
231
|
// present, so the standalone case still gets the 16 px gutter).
|
|
232
|
+
//
|
|
233
|
+
// ⛔ #596 — `--origam-layout---position-{left,right}` STAY UNDECLARED
|
|
234
|
+
// in the token sheets, deliberately. They are not theme tokens: they
|
|
235
|
+
// are runtime MEASUREMENTS, written as INLINE STYLES on the layout
|
|
236
|
+
// root by `useCreateLayout`'s `layoutStyles` (and on main by
|
|
237
|
+
// `mainStyles`) from `mainRect`, via `LAYOUT_POSITION_VARS` — see
|
|
238
|
+
// `composables/Commons/createLayout.composable.ts`. Descendants
|
|
239
|
+
// inherit them from that element, which is how this toolbar receives
|
|
240
|
+
// them. Declaring them at `:root` would publish a themeable channel
|
|
241
|
+
// that the layout's inline style overrides on every real instance —
|
|
242
|
+
// dead by construction — and `LAYOUT_DEFAULT_OFFSET` already is the
|
|
243
|
+
// `0px` written below. The guard flags them only because it compares
|
|
244
|
+
// names against the SHEETS; `OrigamMain` reads the same four vars and
|
|
245
|
+
// is absent from the baseline solely because it declares its own
|
|
246
|
+
// `0px` block locally. They stay in
|
|
247
|
+
// `baseline/token-var-channels.json` as known false positives.
|
|
232
248
|
padding-inline-start: calc(
|
|
233
249
|
var(--origam-toolbar---padding-inline, 16px) +
|
|
234
250
|
var(--origam-layout---position-left, 0px)
|
|
@@ -267,6 +283,28 @@ defineExpose({
|
|
|
267
283
|
border-end-start-radius: var(--origam-toolbar---border-end-start-radius, 0);
|
|
268
284
|
|
|
269
285
|
background: var(--origam-toolbar---background);
|
|
286
|
+
// ⛔ #596 — `--origam-appbar---backdrop-filter` STAYS UNDECLARED in the
|
|
287
|
+
// token sheets, and that is a NAMING decision left open on purpose,
|
|
288
|
+
// not an oversight. Measured: the DS's canonical AppBar family is
|
|
289
|
+
// spelt with a hyphen — `--origam-app-bar---*`, 11 tokens declared in
|
|
290
|
+
// all four sheets and listed in `TTokenName`, every one of them
|
|
291
|
+
// DORMANT because `OrigamAppBar.vue` contains no `var(--origam-…)` at
|
|
292
|
+
// all and delegates its whole surface to this component. This read
|
|
293
|
+
// uses a THIRD spelling, `--origam-appbar---`, which is also the
|
|
294
|
+
// namespace `packages/marketing` adopted locally (7 themes set
|
|
295
|
+
// `--origam-appbar---bg`, read by `marketing/src/layouts/default.vue`;
|
|
296
|
+
// 5 of them additionally set `--origam-appbar---backdrop-filter`, and
|
|
297
|
+
// it does reach this line today).
|
|
298
|
+
// Declaring `none` here would engrave a SECOND grammar for one
|
|
299
|
+
// component into the public token surface, three lines from the
|
|
300
|
+
// `--origam-app-bar---*` block. The two defensible renames —
|
|
301
|
+
// `--origam-app-bar---backdrop-filter` (matches the authoring intent
|
|
302
|
+
// and marketing's naming) or `--origam-toolbar---backdrop-filter`
|
|
303
|
+
// (matches the component that actually reads it, per the
|
|
304
|
+
// `--origam-{component}---{property}` rule) — both break the 5
|
|
305
|
+
// marketing themes unless they move in the same commit, i.e. a
|
|
306
|
+
// cross-package decision. Left in `baseline/token-var-channels.json`
|
|
307
|
+
// until that call is made.
|
|
270
308
|
backdrop-filter: var(--origam-appbar---backdrop-filter, none);
|
|
271
309
|
-webkit-backdrop-filter: var(--origam-appbar---backdrop-filter, none);
|
|
272
310
|
box-shadow: var(--origam-toolbar---box-shadow);
|
|
@@ -471,6 +509,26 @@ defineExpose({
|
|
|
471
509
|
//
|
|
472
510
|
// Shape: rounded SQUARE (8 px), overrides Btn's default
|
|
473
511
|
// `&--icon { border-radius: 50% }`.
|
|
512
|
+
//
|
|
513
|
+
// ⛔ #596 — the two DERIVED channels,
|
|
514
|
+
// `--origam-toolbar---btn-background-color-{hover,active}`, STAY
|
|
515
|
+
// UNDECLARED in the token sheets. Their fallbacks are
|
|
516
|
+
// `color-mix(in srgb, var(--btn-bg-base), black {20,30}%)`, and
|
|
517
|
+
// `--btn-bg-base` is synthesised PER INSTANCE at the top of this block
|
|
518
|
+
// from `--origam-toolbar---btn-background-color` (which #596 DID
|
|
519
|
+
// declare, its fallback being the plain literal `transparent`). A
|
|
520
|
+
// custom property's computed value is its specified value with `var()`
|
|
521
|
+
// already substituted ON THE DECLARING ELEMENT, so a `:root`
|
|
522
|
+
// declaration of that `color-mix()` would be substituted where
|
|
523
|
+
// `--btn-bg-base` does not exist → guaranteed-invalid → every read
|
|
524
|
+
// falls back to the inline fallback anyway. Identical rendering, green
|
|
525
|
+
// guard, dead channel: a lie, not a fix. Freezing them to a static
|
|
526
|
+
// colour instead would be worse — it would sever the derivation from
|
|
527
|
+
// whatever base colour the consumer sets, which is the whole point of
|
|
528
|
+
// the block above. They stay in `baseline/token-var-channels.json` as
|
|
529
|
+
// known false positives; the guard compares NAMES, not fallback
|
|
530
|
+
// chains. A theme overriding them on the toolbar element itself (or
|
|
531
|
+
// deeper) still works, because `--btn-bg-base` resolves there.
|
|
474
532
|
:deep(.origam-btn:not(:hover):not(.origam-btn--active)) {
|
|
475
533
|
--origam-btn---background-color: var(--btn-bg-base);
|
|
476
534
|
--origam-btn---color: var(--btn-fg-base);
|
|
@@ -1,5 +1,56 @@
|
|
|
1
1
|
import { type MaybeRefOrGetter, type Ref } from 'vue';
|
|
2
2
|
import type { IDefault } from '../../interfaces/DefaultsProvider/defaults-provider.interface';
|
|
3
|
+
/*********************************************************
|
|
4
|
+
* POURQUOI `useDefaults` RESTE, sans aucun appelant interne (#544)
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* ⛔ TRANCHE PAR LA MESURE, 2026-09-29 — NE PAS ROUVRIR. #544 le classait
|
|
8
|
+
* « doublon du resolveur ADR-005, plus aucun appelant, a retirer ». Zero
|
|
9
|
+
* appelant est exact : les 40 derniers sont partis sous #363, et un grep dans
|
|
10
|
+
* `packages/ds/src` ne remonte que des mentions en commentaire. La conclusion,
|
|
11
|
+
* elle, est FAUSSE — ce n'est pas un doublon.
|
|
12
|
+
*
|
|
13
|
+
* @description
|
|
14
|
+
* `installThemePropsResolver` a une limitation STRUCTURELLE, documentee dans
|
|
15
|
+
* `theme-props-resolver.composable.ts` (section « Known limitation »). Ce n'est
|
|
16
|
+
* pas un oubli mais le sequencement de Vue : le hook ecrit dans `beforeCreate`,
|
|
17
|
+
* qui s'execute APRES le retour de `setup()`. Un prop lu UNE FOIS,
|
|
18
|
+
* SYNCHRONEMENT, au top level de `setup()` — hors `computed()`,
|
|
19
|
+
* `watchEffect()` ou fonction de rendu — capture donc la valeur d'AVANT le
|
|
20
|
+
* patch : le theme ne l'atteint jamais, et rien n'avertit.
|
|
21
|
+
*
|
|
22
|
+
* @description
|
|
23
|
+
* `useDefaults` n'a PAS cette lacune : le getter de son `computed` s'evalue a
|
|
24
|
+
* l'acces `.value`, a n'importe quel instant, la ref de defauts etant deja
|
|
25
|
+
* injectee au moment ou `setup()` tourne. C'est donc le SEUL echappatoire pour
|
|
26
|
+
* un prop qui doit etre lu tot — precisement le piege qui avait casse les props
|
|
27
|
+
* thematises de 16 composants a travers `useLink` et `useVModel`, jusqu'a ce
|
|
28
|
+
* que les deux soient rendus paresseux.
|
|
29
|
+
*
|
|
30
|
+
* @description
|
|
31
|
+
* S'y ajoute une surface publique reelle : `useDefaults` a une page de doc
|
|
32
|
+
* dediee (`packages/docs/composables/useDefaults.md`) et est cite par
|
|
33
|
+
* `docs/guide/composables.md` et `docs/composables/Commons.md`. C'est
|
|
34
|
+
* exactement le controle que #544 reclamait, et qui avait deja evite une
|
|
35
|
+
* suppression fautive sur `useCountdown` et `provideLocale`.
|
|
36
|
+
*
|
|
37
|
+
* @description
|
|
38
|
+
* ⚠️ La lacune est EPINGLEE PAR UNE PAIRE APPARIEE de tests, qui est la preuve
|
|
39
|
+
* executable que ce composable n'est pas redondant —
|
|
40
|
+
* `packages/tests/TU/origam/setup-level-prop-reads.spec.ts` :
|
|
41
|
+
* it('WITHOUT useDefaults, a value read eagerly in setup() misses the theme')
|
|
42
|
+
* it('WITH useDefaults, the same eager read sees the theme')
|
|
43
|
+
* La spec cite meme un cas reel du catalogue :
|
|
44
|
+
* `useClipboard({ feedbackDuration: props.feedbackDuration })` dans
|
|
45
|
+
* `OrigamClipboard`. `probe/preexisting-eager-reads.spec.ts` couvre le meme axe.
|
|
46
|
+
* Retirer `useDefaults` retire le temoin, donc la preuve.
|
|
47
|
+
*
|
|
48
|
+
* @description
|
|
49
|
+
* ⛔ Et le rayon d'action est large : 35 fichiers sous `packages/tests/TU`
|
|
50
|
+
* referencent `useDefaults` (mesure, 2026-09-29). Une note anterieure de session
|
|
51
|
+
* avancait « 3 specs, 23 tests » — chiffre de memoire, FAUX, et c'est exactement
|
|
52
|
+
* le genre d'affirmation non remesuree qui a fait ouvrir #544.
|
|
53
|
+
********************************************************/
|
|
3
54
|
/**
|
|
4
55
|
* Component-side hook: resolve `props` against the closest DefaultsProvider.
|
|
5
56
|
*
|
|
@@ -39,10 +39,10 @@ export declare function createHeaders(props: IDataTableHeaderProps, options?: {
|
|
|
39
39
|
sort?: TDataTableCompareFunction | undefined;
|
|
40
40
|
filter?: import("../../types").TFilterFunction | undefined;
|
|
41
41
|
align?: (import("../../enums").ALIGN.START | import("../../enums").ALIGN.END | import("../../enums").ALIGN.CENTER) | undefined;
|
|
42
|
-
mobile?: boolean | undefined;
|
|
43
42
|
headerProps?: any;
|
|
44
43
|
cellProps?: import("../../types").TDataTableHeaderCell | undefined;
|
|
45
44
|
sortRaw?: TDataTableCompareFunction | undefined;
|
|
45
|
+
mobile?: boolean | undefined;
|
|
46
46
|
}[][], IInternalDataTableHeader[][] | {
|
|
47
47
|
key: string | null;
|
|
48
48
|
value: import("../../types").TSelectItemKey | null;
|
|
@@ -62,10 +62,10 @@ export declare function createHeaders(props: IDataTableHeaderProps, options?: {
|
|
|
62
62
|
sort?: TDataTableCompareFunction | undefined;
|
|
63
63
|
filter?: import("../../types").TFilterFunction | undefined;
|
|
64
64
|
align?: (import("../../enums").ALIGN.START | import("../../enums").ALIGN.END | import("../../enums").ALIGN.CENTER) | undefined;
|
|
65
|
-
mobile?: boolean | undefined;
|
|
66
65
|
headerProps?: any;
|
|
67
66
|
cellProps?: import("../../types").TDataTableHeaderCell | undefined;
|
|
68
67
|
sortRaw?: TDataTableCompareFunction | undefined;
|
|
68
|
+
mobile?: boolean | undefined;
|
|
69
69
|
}[][]>;
|
|
70
70
|
columns: Ref<{
|
|
71
71
|
key: string | null;
|
|
@@ -86,10 +86,10 @@ export declare function createHeaders(props: IDataTableHeaderProps, options?: {
|
|
|
86
86
|
sort?: TDataTableCompareFunction | undefined;
|
|
87
87
|
filter?: import("../../types").TFilterFunction | undefined;
|
|
88
88
|
align?: (import("../../enums").ALIGN.START | import("../../enums").ALIGN.END | import("../../enums").ALIGN.CENTER) | undefined;
|
|
89
|
-
mobile?: boolean | undefined;
|
|
90
89
|
headerProps?: any;
|
|
91
90
|
cellProps?: import("../../types").TDataTableHeaderCell | undefined;
|
|
92
91
|
sortRaw?: TDataTableCompareFunction | undefined;
|
|
92
|
+
mobile?: boolean | undefined;
|
|
93
93
|
}[], IInternalDataTableHeader[] | {
|
|
94
94
|
key: string | null;
|
|
95
95
|
value: import("../../types").TSelectItemKey | null;
|
|
@@ -109,10 +109,10 @@ export declare function createHeaders(props: IDataTableHeaderProps, options?: {
|
|
|
109
109
|
sort?: TDataTableCompareFunction | undefined;
|
|
110
110
|
filter?: import("../../types").TFilterFunction | undefined;
|
|
111
111
|
align?: (import("../../enums").ALIGN.START | import("../../enums").ALIGN.END | import("../../enums").ALIGN.CENTER) | undefined;
|
|
112
|
-
mobile?: boolean | undefined;
|
|
113
112
|
headerProps?: any;
|
|
114
113
|
cellProps?: import("../../types").TDataTableHeaderCell | undefined;
|
|
115
114
|
sortRaw?: TDataTableCompareFunction | undefined;
|
|
115
|
+
mobile?: boolean | undefined;
|
|
116
116
|
}[]>;
|
|
117
117
|
sortFunctions: Ref<Record<string, TDataTableCompareFunction>, Record<string, TDataTableCompareFunction>>;
|
|
118
118
|
sortRawFunctions: Ref<Record<string, TDataTableCompareFunction>, Record<string, TDataTableCompareFunction>>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { TEmptyStateAlign, TEmptyStatePreset, TEmptyStateSize } from '../../types
|
|
3
|
-
import type { TIcon } from '../../types/Icon/icon.type';
|
|
1
|
+
import type { IEmptyStatePresetConfig } from "../../interfaces";
|
|
2
|
+
import type { TEmptyStateAlign, TEmptyStatePreset, TEmptyStateSize } from '../../types';
|
|
4
3
|
/**
|
|
5
4
|
* Closed list of valid `preset` values for `<OrigamEmptyState>`.
|
|
6
5
|
* Exposed so stories / consumers can iterate the matrix without
|
|
@@ -15,17 +14,4 @@ export declare const EMPTY_STATE_SIZES: ReadonlyArray<TEmptyStateSize>;
|
|
|
15
14
|
* Closed list of valid `align` values.
|
|
16
15
|
*/
|
|
17
16
|
export declare const EMPTY_STATE_ALIGNS: ReadonlyArray<TEmptyStateAlign>;
|
|
18
|
-
/**
|
|
19
|
-
* Per-preset bundle: default icon + semantic intent.
|
|
20
|
-
*
|
|
21
|
-
* Consumers can override either side at the prop level (`icon` and
|
|
22
|
-
* `iconColor`) without leaving the preset — the preset is the
|
|
23
|
-
* "starting point", not a lock. The map is intentionally a plain
|
|
24
|
-
* object so brand consumers can extend it through a defaults provider
|
|
25
|
-
* in the future without touching the type.
|
|
26
|
-
*/
|
|
27
|
-
export interface IEmptyStatePresetConfig {
|
|
28
|
-
icon: TIcon;
|
|
29
|
-
intent: TIntent;
|
|
30
|
-
}
|
|
31
17
|
export declare const EMPTY_STATE_PRESET_CONFIG: Record<TEmptyStatePreset, IEmptyStatePresetConfig>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TModeResolved } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Summary of one installed brand theme, derived from the `IOrigamTheme[]`
|
|
4
|
+
* objects passed to `createOrigam({ themes })`. Several `IOrigamTheme` objects
|
|
5
|
+
* may share the same `name` (one per mode); they are collapsed into a single
|
|
6
|
+
* entry whose `modes` lists every concrete mode that brand was installed for.
|
|
7
|
+
*
|
|
8
|
+
* Consumers (e.g. a theme switcher) map over this list instead of hard-coding
|
|
9
|
+
* the available brands — the list is the single source of truth for "what was
|
|
10
|
+
* installed".
|
|
11
|
+
*/
|
|
12
|
+
export interface IInstalledTheme {
|
|
13
|
+
/** Brand name, applied as `data-theme="<name>"`. */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Concrete modes this brand ships (`'light'` / `'dark'`). */
|
|
16
|
+
modes: TModeResolved[];
|
|
17
|
+
/**
|
|
18
|
+
* Human-readable label for UI. Defaults to `name` when no installed object
|
|
19
|
+
* for this brand provided a `label`.
|
|
20
|
+
*/
|
|
21
|
+
label: string;
|
|
22
|
+
/** Short description for UI, when an installed object provided one. */
|
|
23
|
+
description?: string;
|
|
24
|
+
/** CSS background for a brand swatch preview, when provided. */
|
|
25
|
+
swatch?: string;
|
|
26
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TSemanticLeaf } from "../../types";
|
|
2
|
+
export interface ISemanticTree {
|
|
3
|
+
[key: string]: TSemanticLeaf | ISemanticTree;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Structured token-configuration bucket — THE way to author a theme's global
|
|
7
|
+
* design tokens (the JSON that generates every global `--origam-*` variable).
|
|
8
|
+
*
|
|
9
|
+
* Each key is a friendly token GROUP whose nested tree resolves to the matching
|
|
10
|
+
* `--origam-*` namespace through the shared naming grammar:
|
|
11
|
+
* - `color` → `--origam-color-*` (`color.surface.default`, `color.text.primary`, `color.action.primary.bg`, …)
|
|
12
|
+
* - `rounded` → `--origam-radius-*` (`rounded.sm`, `rounded.md`, `rounded.lg`, …)
|
|
13
|
+
* - `border` → `--origam-border-*` (`border.width.thin`, …)
|
|
14
|
+
* - `typo` → `--origam-font-*` (`typo.family.sans`, `typo.size.md`, `typo.weight.bold`, …)
|
|
15
|
+
* - `shadow` → `--origam-shadow-*` (`shadow.sm`, `shadow.md`, …)
|
|
16
|
+
* - `spacing` → `--origam-space-*` (`spacing.4`, `spacing.12`, …)
|
|
17
|
+
* - `motion` → `--origam-motion-*` (`motion.duration.fast`, `motion.easing.standard`, …)
|
|
18
|
+
*
|
|
19
|
+
* A leaf value is free-form CSS for its slot (a color slot also accepts a
|
|
20
|
+
* gradient). Plain JSON — fully serialisable for Theme-Builder round-trips.
|
|
21
|
+
*/
|
|
22
|
+
export interface IThemeVars {
|
|
23
|
+
color?: ISemanticTree;
|
|
24
|
+
rounded?: ISemanticTree;
|
|
25
|
+
border?: ISemanticTree;
|
|
26
|
+
typo?: ISemanticTree;
|
|
27
|
+
shadow?: ISemanticTree;
|
|
28
|
+
spacing?: ISemanticTree;
|
|
29
|
+
motion?: ISemanticTree;
|
|
30
|
+
}
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Ref } from 'vue';
|
|
2
|
-
import type { IThemeVars } from '
|
|
2
|
+
import type { IThemeVars } from './semantic-tree.interface';
|
|
3
3
|
import type { TThemeVars } from '../../types/Commons/token-tree.type';
|
|
4
4
|
import type { TMode, TTheme } from '../../types/Commons/theme.type';
|
|
5
5
|
import type { IDefault } from '../DefaultsProvider/defaults-provider.interface';
|
|
@@ -3,6 +3,19 @@ import type { ITypographyProps } from '../Commons/typography.interface';
|
|
|
3
3
|
import type { TEmptyStateAlign, TEmptyStatePreset, TEmptyStateSize } from '../../types/EmptyState/empty-state.type';
|
|
4
4
|
import type { TIcon } from '../../types/Icon/icon.type';
|
|
5
5
|
import type { TIntent } from '../../types/Commons/intent.type';
|
|
6
|
+
/**
|
|
7
|
+
* Per-preset bundle: default icon + semantic intent.
|
|
8
|
+
*
|
|
9
|
+
* Consumers can override either side at the prop level (`icon` and
|
|
10
|
+
* `iconColor`) without leaving the preset — the preset is the
|
|
11
|
+
* "starting point", not a lock. The map is intentionally a plain
|
|
12
|
+
* object so brand consumers can extend it through a defaults provider
|
|
13
|
+
* in the future without touching the type.
|
|
14
|
+
*/
|
|
15
|
+
export interface IEmptyStatePresetConfig {
|
|
16
|
+
icon: TIcon;
|
|
17
|
+
intent: TIntent;
|
|
18
|
+
}
|
|
6
19
|
/**
|
|
7
20
|
* Props for `<OrigamEmptyState>` — placeholder shown when a list, table
|
|
8
21
|
* or collection has nothing to render.
|
|
@@ -784,6 +784,17 @@ Object.keys(_intersect).forEach(function (key) {
|
|
|
784
784
|
}
|
|
785
785
|
});
|
|
786
786
|
});
|
|
787
|
+
var _installedTheme = require("./Commons/installed-theme.interface.cjs");
|
|
788
|
+
Object.keys(_installedTheme).forEach(function (key) {
|
|
789
|
+
if (key === "default" || key === "__esModule") return;
|
|
790
|
+
if (key in exports && exports[key] === _installedTheme[key]) return;
|
|
791
|
+
Object.defineProperty(exports, key, {
|
|
792
|
+
enumerable: true,
|
|
793
|
+
get: function () {
|
|
794
|
+
return _installedTheme[key];
|
|
795
|
+
}
|
|
796
|
+
});
|
|
797
|
+
});
|
|
787
798
|
var _item = require("./Commons/item.interface.cjs");
|
|
788
799
|
Object.keys(_item).forEach(function (key) {
|
|
789
800
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -993,6 +1004,17 @@ Object.keys(_scroll).forEach(function (key) {
|
|
|
993
1004
|
}
|
|
994
1005
|
});
|
|
995
1006
|
});
|
|
1007
|
+
var _semanticTree = require("./Commons/semantic-tree.interface.cjs");
|
|
1008
|
+
Object.keys(_semanticTree).forEach(function (key) {
|
|
1009
|
+
if (key === "default" || key === "__esModule") return;
|
|
1010
|
+
if (key in exports && exports[key] === _semanticTree[key]) return;
|
|
1011
|
+
Object.defineProperty(exports, key, {
|
|
1012
|
+
enumerable: true,
|
|
1013
|
+
get: function () {
|
|
1014
|
+
return _semanticTree[key];
|
|
1015
|
+
}
|
|
1016
|
+
});
|
|
1017
|
+
});
|
|
996
1018
|
var _size = require("./Commons/size.interface.cjs");
|
|
997
1019
|
Object.keys(_size).forEach(function (key) {
|
|
998
1020
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -69,6 +69,7 @@ export * from './Commons/group.interface';
|
|
|
69
69
|
export * from './Commons/hotkey.interface';
|
|
70
70
|
export * from './Commons/hover.interface';
|
|
71
71
|
export * from './Commons/intersect.interface';
|
|
72
|
+
export * from './Commons/installed-theme.interface';
|
|
72
73
|
export * from './Commons/item.interface';
|
|
73
74
|
export * from './Commons/justify.interface';
|
|
74
75
|
export * from './Commons/layout.interface';
|
|
@@ -88,6 +89,7 @@ export * from './Commons/ripple.interface';
|
|
|
88
89
|
export * from './Commons/rounded.interface';
|
|
89
90
|
export * from './Commons/router.interface';
|
|
90
91
|
export * from './Commons/scroll.interface';
|
|
92
|
+
export * from './Commons/semantic-tree.interface';
|
|
91
93
|
export * from './Commons/size.interface';
|
|
92
94
|
export * from './Commons/stack.interface';
|
|
93
95
|
export * from './Commons/state-effect.interface';
|
|
@@ -69,6 +69,7 @@ export * from "./Commons/group.interface.js";
|
|
|
69
69
|
export * from "./Commons/hotkey.interface.js";
|
|
70
70
|
export * from "./Commons/hover.interface.js";
|
|
71
71
|
export * from "./Commons/intersect.interface.js";
|
|
72
|
+
export * from "./Commons/installed-theme.interface.js";
|
|
72
73
|
export * from "./Commons/item.interface.js";
|
|
73
74
|
export * from "./Commons/justify.interface.js";
|
|
74
75
|
export * from "./Commons/layout.interface.js";
|
|
@@ -88,6 +89,7 @@ export * from "./Commons/ripple.interface.js";
|
|
|
88
89
|
export * from "./Commons/rounded.interface.js";
|
|
89
90
|
export * from "./Commons/router.interface.js";
|
|
90
91
|
export * from "./Commons/scroll.interface.js";
|
|
92
|
+
export * from "./Commons/semantic-tree.interface.js";
|
|
91
93
|
export * from "./Commons/size.interface.js";
|
|
92
94
|
export * from "./Commons/stack.interface.js";
|
|
93
95
|
export * from "./Commons/state-effect.interface.js";
|
|
@@ -1,31 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
/**
|
|
3
|
-
* Summary of one installed brand theme, derived from the `IOrigamTheme[]`
|
|
4
|
-
* objects passed to `createOrigam({ themes })`. Several `IOrigamTheme` objects
|
|
5
|
-
* may share the same `name` (one per mode); they are collapsed into a single
|
|
6
|
-
* entry whose `modes` lists every concrete mode that brand was installed for.
|
|
7
|
-
*
|
|
8
|
-
* Consumers (e.g. a theme switcher) map over this list instead of hard-coding
|
|
9
|
-
* the available brands — the list is the single source of truth for "what was
|
|
10
|
-
* installed".
|
|
11
|
-
*/
|
|
12
|
-
export interface TInstalledTheme {
|
|
13
|
-
/** Brand name, applied as `data-theme="<name>"`. */
|
|
14
|
-
name: string;
|
|
15
|
-
/** Concrete modes this brand ships (`'light'` / `'dark'`). */
|
|
16
|
-
modes: TModeResolved[];
|
|
17
|
-
/**
|
|
18
|
-
* Human-readable label for UI. Defaults to `name` when no installed object
|
|
19
|
-
* for this brand provided a `label`.
|
|
20
|
-
*/
|
|
21
|
-
label: string;
|
|
22
|
-
/** Short description for UI, when an installed object provided one. */
|
|
23
|
-
description?: string;
|
|
24
|
-
/** CSS background for a brand swatch preview, when provided. */
|
|
25
|
-
swatch?: string;
|
|
26
|
-
}
|
|
1
|
+
import type { IInstalledTheme } from "../../interfaces/Commons/installed-theme.interface";
|
|
27
2
|
/**
|
|
28
3
|
* The full installed-themes list provided by `createOrigam` and read back via
|
|
29
4
|
* `useInstalledThemes()`.
|
|
30
5
|
*/
|
|
31
|
-
export type TInstalledThemes =
|
|
6
|
+
export type TInstalledThemes = IInstalledTheme[];
|
|
@@ -17,32 +17,3 @@
|
|
|
17
17
|
* round-trip it without losing fidelity.
|
|
18
18
|
*/
|
|
19
19
|
export type TSemanticLeaf = string | number;
|
|
20
|
-
export interface ISemanticTree {
|
|
21
|
-
[key: string]: TSemanticLeaf | ISemanticTree;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Structured token-configuration bucket — THE way to author a theme's global
|
|
25
|
-
* design tokens (the JSON that generates every global `--origam-*` variable).
|
|
26
|
-
*
|
|
27
|
-
* Each key is a friendly token GROUP whose nested tree resolves to the matching
|
|
28
|
-
* `--origam-*` namespace through the shared naming grammar:
|
|
29
|
-
* - `color` → `--origam-color-*` (`color.surface.default`, `color.text.primary`, `color.action.primary.bg`, …)
|
|
30
|
-
* - `rounded` → `--origam-radius-*` (`rounded.sm`, `rounded.md`, `rounded.lg`, …)
|
|
31
|
-
* - `border` → `--origam-border-*` (`border.width.thin`, …)
|
|
32
|
-
* - `typo` → `--origam-font-*` (`typo.family.sans`, `typo.size.md`, `typo.weight.bold`, …)
|
|
33
|
-
* - `shadow` → `--origam-shadow-*` (`shadow.sm`, `shadow.md`, …)
|
|
34
|
-
* - `spacing` → `--origam-space-*` (`spacing.4`, `spacing.12`, …)
|
|
35
|
-
* - `motion` → `--origam-motion-*` (`motion.duration.fast`, `motion.easing.standard`, …)
|
|
36
|
-
*
|
|
37
|
-
* A leaf value is free-form CSS for its slot (a color slot also accepts a
|
|
38
|
-
* gradient). Plain JSON — fully serialisable for Theme-Builder round-trips.
|
|
39
|
-
*/
|
|
40
|
-
export interface IThemeVars {
|
|
41
|
-
color?: ISemanticTree;
|
|
42
|
-
rounded?: ISemanticTree;
|
|
43
|
-
border?: ISemanticTree;
|
|
44
|
-
typo?: ISemanticTree;
|
|
45
|
-
shadow?: ISemanticTree;
|
|
46
|
-
spacing?: ISemanticTree;
|
|
47
|
-
motion?: ISemanticTree;
|
|
48
|
-
}
|