@youcan/celeste 0.6.56 → 0.6.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/celeste.css +301 -70
  2. package/dist/cjs/chunks/index.js +245 -1
  3. package/dist/cjs/chunks/pagination-first.js +32 -0
  4. package/dist/cjs/chunks/pagination-item.js +32 -0
  5. package/dist/cjs/chunks/pagination-last.js +32 -0
  6. package/dist/cjs/chunks/pagination-next.js +32 -0
  7. package/dist/cjs/chunks/pagination-previous.js +32 -0
  8. package/dist/cjs/chunks/use-color-model.js +3 -0
  9. package/dist/cjs/index.js +24 -0
  10. package/dist/cjs/pagination-content.js +30 -0
  11. package/dist/cjs/pagination-ellipsis.js +34 -0
  12. package/dist/cjs/pagination-first.js +3 -0
  13. package/dist/cjs/pagination-item.js +3 -0
  14. package/dist/cjs/pagination-last.js +3 -0
  15. package/dist/cjs/pagination-next.js +3 -0
  16. package/dist/cjs/pagination-previous.js +3 -0
  17. package/dist/cjs/pagination.js +59 -0
  18. package/dist/cjs/table-body.js +23 -0
  19. package/dist/cjs/table-caption.js +23 -0
  20. package/dist/cjs/table-cell.js +25 -0
  21. package/dist/cjs/table-empty.js +43 -0
  22. package/dist/cjs/table-footer.js +23 -0
  23. package/dist/cjs/table-head.js +24 -0
  24. package/dist/cjs/table-header.js +20 -0
  25. package/dist/cjs/table-row.js +31 -0
  26. package/dist/cjs/table.js +26 -0
  27. package/dist/components/index.d.ts +1 -0
  28. package/dist/components/pagination/index.d.ts +16 -0
  29. package/dist/components/pagination/pagination-content.d.ts +21 -0
  30. package/dist/components/pagination/pagination-ellipsis.d.ts +14 -0
  31. package/dist/components/pagination/pagination-first.d.ts +14 -0
  32. package/dist/components/pagination/pagination-item.d.ts +16 -0
  33. package/dist/components/pagination/pagination-last.d.ts +14 -0
  34. package/dist/components/pagination/pagination-next.d.ts +14 -0
  35. package/dist/components/pagination/pagination-previous.d.ts +14 -0
  36. package/dist/components/pagination/pagination.d.ts +32 -0
  37. package/dist/components/table/index.d.ts +18 -0
  38. package/dist/components/table/table-body.d.ts +13 -0
  39. package/dist/components/table/table-caption.d.ts +13 -0
  40. package/dist/components/table/table-cell.d.ts +16 -0
  41. package/dist/components/table/table-empty.d.ts +16 -0
  42. package/dist/components/table/table-footer.d.ts +13 -0
  43. package/dist/components/table/table-head.d.ts +16 -0
  44. package/dist/components/table/table-header.d.ts +13 -0
  45. package/dist/components/table/table-row.d.ts +16 -0
  46. package/dist/components/table/table.d.ts +13 -0
  47. package/dist/es/chunks/index.js +309 -65
  48. package/dist/es/chunks/index3.js +1 -1
  49. package/dist/es/chunks/modal-close.js +1 -1
  50. package/dist/es/chunks/pagination-first.js +33 -0
  51. package/dist/es/chunks/pagination-item.js +33 -0
  52. package/dist/es/chunks/pagination-last.js +33 -0
  53. package/dist/es/chunks/pagination-next.js +33 -0
  54. package/dist/es/chunks/pagination-previous.js +33 -0
  55. package/dist/es/chunks/select-group.js +1 -1
  56. package/dist/es/chunks/use-color-model.js +3 -0
  57. package/dist/es/combobox-group.js +1 -1
  58. package/dist/es/combobox-input.js +1 -1
  59. package/dist/es/combobox-item.js +1 -1
  60. package/dist/es/combobox-list.js +1 -1
  61. package/dist/es/combobox-root.js +1 -1
  62. package/dist/es/combobox-separator.js +1 -1
  63. package/dist/es/combobox-trigger.js +1 -1
  64. package/dist/es/command-group.js +1 -1
  65. package/dist/es/command-input.js +1 -1
  66. package/dist/es/command-item.js +1 -1
  67. package/dist/es/command-list.js +1 -1
  68. package/dist/es/command-root.js +1 -1
  69. package/dist/es/command-separator.js +1 -1
  70. package/dist/es/digit-input-slot.js +1 -1
  71. package/dist/es/digit-input.js +1 -1
  72. package/dist/es/dropdown-menu-content.js +1 -1
  73. package/dist/es/dropdown-menu-group.js +1 -1
  74. package/dist/es/dropdown-menu-item.js +1 -1
  75. package/dist/es/dropdown-menu-label.js +1 -1
  76. package/dist/es/dropdown-menu-separator.js +1 -1
  77. package/dist/es/dropdown-menu-sub-content.js +1 -1
  78. package/dist/es/dropdown-menu-sub-trigger.js +1 -1
  79. package/dist/es/dropdown-menu-trigger.js +1 -1
  80. package/dist/es/dropdown-menu.js +1 -1
  81. package/dist/es/index.js +51 -27
  82. package/dist/es/modal-content.js +1 -1
  83. package/dist/es/modal-header.js +1 -1
  84. package/dist/es/pagination-content.js +31 -0
  85. package/dist/es/pagination-ellipsis.js +35 -0
  86. package/dist/es/pagination-first.js +4 -0
  87. package/dist/es/pagination-item.js +4 -0
  88. package/dist/es/pagination-last.js +4 -0
  89. package/dist/es/pagination-next.js +4 -0
  90. package/dist/es/pagination-previous.js +4 -0
  91. package/dist/es/pagination.js +60 -0
  92. package/dist/es/popover-content.js +1 -1
  93. package/dist/es/popover-trigger.js +1 -1
  94. package/dist/es/progress-bar.js +1 -1
  95. package/dist/es/progress-circle.js +1 -1
  96. package/dist/es/scroll-bar.js +1 -1
  97. package/dist/es/segmented-control-item.js +1 -1
  98. package/dist/es/segmented-control.js +1 -1
  99. package/dist/es/select-content.js +1 -1
  100. package/dist/es/select-item.js +1 -1
  101. package/dist/es/select-trigger.js +1 -1
  102. package/dist/es/select-value.js +1 -1
  103. package/dist/es/tab-menu-content.js +1 -1
  104. package/dist/es/tab-menu-item.js +1 -1
  105. package/dist/es/tab-menu-list.js +1 -1
  106. package/dist/es/tab-menu.js +1 -1
  107. package/dist/es/table-body.js +24 -0
  108. package/dist/es/table-caption.js +24 -0
  109. package/dist/es/table-cell.js +26 -0
  110. package/dist/es/table-empty.js +44 -0
  111. package/dist/es/table-footer.js +24 -0
  112. package/dist/es/table-head.js +25 -0
  113. package/dist/es/table-header.js +21 -0
  114. package/dist/es/table-row.js +32 -0
  115. package/dist/es/table.js +27 -0
  116. package/dist/es/tooltip.js +1 -1
  117. package/package.json +4 -3
  118. package/src/components/color-picker/composable/use-color-model.ts +4 -0
  119. package/src/components/index.ts +1 -0
  120. package/src/components/pagination/index.ts +23 -0
  121. package/src/components/pagination/pagination-content.vue +36 -0
  122. package/src/components/pagination/pagination-ellipsis.vue +47 -0
  123. package/src/components/pagination/pagination-first.vue +29 -0
  124. package/src/components/pagination/pagination-item.vue +28 -0
  125. package/src/components/pagination/pagination-last.vue +29 -0
  126. package/src/components/pagination/pagination-next.vue +29 -0
  127. package/src/components/pagination/pagination-previous.vue +33 -0
  128. package/src/components/pagination/pagination.vue +157 -0
  129. package/src/components/pagination/stories/pagination.stories.ts +154 -0
  130. package/src/components/switch/switch.vue +34 -16
  131. package/src/components/table/index.ts +26 -0
  132. package/src/components/table/stories/table.stories.ts +138 -0
  133. package/src/components/table/table-body.vue +24 -0
  134. package/src/components/table/table-caption.vue +26 -0
  135. package/src/components/table/table-cell.vue +49 -0
  136. package/src/components/table/table-empty.vue +43 -0
  137. package/src/components/table/table-footer.vue +24 -0
  138. package/src/components/table/table-head.vue +47 -0
  139. package/src/components/table/table-header.vue +18 -0
  140. package/src/components/table/table-row.vue +52 -0
  141. package/src/components/table/table.vue +36 -0
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot } from "vue";
2
2
  import { useDelegatedProps } from "./use-delegated-props.js";
3
3
  import { c as clsx } from "./chunks/clsx.js";
4
- import { J as gg } from "./chunks/index.js";
4
+ import { M as gg } from "./chunks/index.js";
5
5
  import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  __name: "tab-menu-list",
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot } from "vue";
2
- import { x as xe, I as yg } from "./chunks/index.js";
2
+ import { x as xe, L as yg } from "./chunks/index.js";
3
3
  import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "tab-menu",
@@ -0,0 +1,24 @@
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ /* empty css */
4
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "table-body",
7
+ props: {
8
+ class: {}
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ return (_ctx, _cache) => {
13
+ return openBlock(), createElementBlock("tbody", {
14
+ class: normalizeClass(unref(clsx)("celeste-table-body", props.class))
15
+ }, [
16
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17
+ ], 2);
18
+ };
19
+ }
20
+ });
21
+ const tableBody = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b9eb0cd1"]]);
22
+ export {
23
+ tableBody as default
24
+ };
@@ -0,0 +1,24 @@
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ /* empty css */
4
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "table-caption",
7
+ props: {
8
+ class: {}
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ return (_ctx, _cache) => {
13
+ return openBlock(), createElementBlock("caption", {
14
+ class: normalizeClass(unref(clsx)("celeste-table-caption", props.class))
15
+ }, [
16
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17
+ ], 2);
18
+ };
19
+ }
20
+ });
21
+ const tableCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-13a21605"]]);
22
+ export {
23
+ tableCaption as default
24
+ };
@@ -0,0 +1,26 @@
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
4
+ const _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "table-cell",
6
+ props: {
7
+ class: {},
8
+ end: { type: Boolean, default: false }
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ return (_ctx, _cache) => {
13
+ return openBlock(), createElementBlock("td", {
14
+ class: normalizeClass(unref(clsx)("celeste-table-cell", props.class, {
15
+ "celeste-table-cell-align-end": props.end
16
+ }))
17
+ }, [
18
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
19
+ ], 2);
20
+ };
21
+ }
22
+ });
23
+ const TableCell = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5f65ee4a"]]);
24
+ export {
25
+ TableCell as default
26
+ };
@@ -0,0 +1,44 @@
1
+ import { defineComponent, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, createElementVNode, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ /* empty css */
4
+ /* empty css */
5
+ import TableCell from "./table-cell.js";
6
+ import { useDelegatedProps } from "./use-delegated-props.js";
7
+ /* empty css */
8
+ /* empty css */
9
+ import TableRow from "./table-row.js";
10
+ /* empty css */
11
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
12
+ const _hoisted_1 = { class: "celeste-table-empty-content" };
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ __name: "table-empty",
15
+ props: {
16
+ colspan: { default: 1 },
17
+ class: {}
18
+ },
19
+ setup(__props) {
20
+ const props = __props;
21
+ const delegated = useDelegatedProps(props, "class");
22
+ return (_ctx, _cache) => {
23
+ return openBlock(), createBlock(unref(TableRow), null, {
24
+ default: withCtx(() => [
25
+ createVNode(unref(TableCell), mergeProps(unref(delegated), {
26
+ class: unref(clsx)("celeste-table-empty", props.class)
27
+ }), {
28
+ default: withCtx(() => [
29
+ createElementVNode("div", _hoisted_1, [
30
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
31
+ ])
32
+ ]),
33
+ _: 3
34
+ }, 16, ["class"])
35
+ ]),
36
+ _: 3
37
+ });
38
+ };
39
+ }
40
+ });
41
+ const tableEmpty = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1c0042ab"]]);
42
+ export {
43
+ tableEmpty as default
44
+ };
@@ -0,0 +1,24 @@
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ /* empty css */
4
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "table-footer",
7
+ props: {
8
+ class: {}
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ return (_ctx, _cache) => {
13
+ return openBlock(), createElementBlock("tfoot", {
14
+ class: normalizeClass(unref(clsx)("celeste-table-footer", props.class))
15
+ }, [
16
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17
+ ], 2);
18
+ };
19
+ }
20
+ });
21
+ const tableFooter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-50b76b8f"]]);
22
+ export {
23
+ tableFooter as default
24
+ };
@@ -0,0 +1,25 @@
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ /* empty css */
4
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "table-head",
7
+ props: {
8
+ class: {},
9
+ end: { type: Boolean, default: false }
10
+ },
11
+ setup(__props) {
12
+ const props = __props;
13
+ return (_ctx, _cache) => {
14
+ return openBlock(), createElementBlock("th", {
15
+ class: normalizeClass(unref(clsx)("celeste-table-head", props.class, { "celeste-table-head-align-end": props.end }))
16
+ }, [
17
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
18
+ ], 2);
19
+ };
20
+ }
21
+ });
22
+ const tableHead = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-76a52252"]]);
23
+ export {
24
+ tableHead as default
25
+ };
@@ -0,0 +1,21 @@
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "table-header",
5
+ props: {
6
+ class: {}
7
+ },
8
+ setup(__props) {
9
+ const props = __props;
10
+ return (_ctx, _cache) => {
11
+ return openBlock(), createElementBlock("thead", {
12
+ class: normalizeClass(unref(clsx)("celeste-table-header", props.class))
13
+ }, [
14
+ renderSlot(_ctx.$slots, "default")
15
+ ], 2);
16
+ };
17
+ }
18
+ });
19
+ export {
20
+ _sfc_main as default
21
+ };
@@ -0,0 +1,32 @@
1
+ import { defineComponent, openBlock, createElementBlock, Fragment, createElementVNode, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
4
+ const _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "table-row",
6
+ props: {
7
+ class: {},
8
+ hoverable: { type: Boolean, default: true }
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ return (_ctx, _cache) => {
13
+ return openBlock(), createElementBlock(Fragment, null, [
14
+ createElementVNode("tr", {
15
+ class: normalizeClass(unref(clsx)("celeste-table-row", props.class, { "celeste-table-row-hoverable": props.hoverable }))
16
+ }, [
17
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
18
+ ], 2),
19
+ _cache[0] || (_cache[0] = createElementVNode("tr", {
20
+ "aria-hidden": "true",
21
+ class: "celeste-table-row-divider"
22
+ }, [
23
+ createElementVNode("td", { colspan: "100" })
24
+ ], -1))
25
+ ], 64);
26
+ };
27
+ }
28
+ });
29
+ const TableRow = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5a7011d2"]]);
30
+ export {
31
+ TableRow as default
32
+ };
@@ -0,0 +1,27 @@
1
+ import { defineComponent, openBlock, createElementBlock, createElementVNode, normalizeClass, unref, renderSlot } from "vue";
2
+ import { c as clsx } from "./chunks/clsx.js";
3
+ /* empty css */
4
+ import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
5
+ const _hoisted_1 = { class: "celeste-table-wrapper" };
6
+ const _sfc_main = /* @__PURE__ */ defineComponent({
7
+ __name: "table",
8
+ props: {
9
+ class: {}
10
+ },
11
+ setup(__props) {
12
+ const props = __props;
13
+ return (_ctx, _cache) => {
14
+ return openBlock(), createElementBlock("div", _hoisted_1, [
15
+ createElementVNode("table", {
16
+ class: normalizeClass(unref(clsx)("celeste-table", props.class))
17
+ }, [
18
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
19
+ ], 2)
20
+ ]);
21
+ };
22
+ }
23
+ });
24
+ const table = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8ed967fe"]]);
25
+ export {
26
+ table as default
27
+ };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, ref, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot, createElementBlock, normalizeClass, createCommentVNode, createElementVNode, toDisplayString } from "vue";
2
2
  import CompactButton from "./compact-button.js";
3
3
  import { c as clsx } from "./chunks/clsx.js";
4
- import { x as xe, aE as Lg, aF as zg, aG as Kg, aH as jg, aI as Hg, aJ as Wg } from "./chunks/index.js";
4
+ import { x as xe, aK as Lg, aL as zg, aM as Kg, aN as jg, aO as Hg, aP as Wg } from "./chunks/index.js";
5
5
  import { _ as _export_sfc } from "./chunks/_plugin-vue_export-helper.js";
6
6
  const _hoisted_1 = { class: "celeste-tooltip-content-box" };
7
7
  const _hoisted_2 = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@youcan/celeste",
3
3
  "type": "module",
4
- "version": "0.6.56",
4
+ "version": "0.6.59",
5
5
  "author": "YouCan <tech@youcan.shop>",
6
6
  "keywords": [
7
7
  "youcan",
@@ -44,8 +44,8 @@
44
44
  "radix-vue": "^1.9.12",
45
45
  "tinycolor2": "^1.6.0",
46
46
  "vue-sonner": "^2.0.2",
47
- "@youcan/celeste-icons": "0.6.56",
48
- "@youcan/celeste-tokens": "0.6.56"
47
+ "@youcan/celeste-icons": "0.6.59",
48
+ "@youcan/celeste-tokens": "0.6.59"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@chromatic-com/storybook": "^4.1.1",
@@ -53,6 +53,7 @@
53
53
  "@storybook/addon-knobs": "^8.0.1",
54
54
  "@storybook/addon-onboarding": "^9.1.10",
55
55
  "@storybook/vue3-vite": "^9.1.10",
56
+ "@tanstack/vue-table": "^8.20.5",
56
57
  "@tsconfig/node20": "^20.1.4",
57
58
  "@types/jsdom": "^21.1.7",
58
59
  "@types/tinycolor2": "^1.4.6",
@@ -36,5 +36,9 @@ export function defineColorModel(props: useTinyColorModelProps, emit: any): Writ
36
36
  }
37
37
 
38
38
  function transformToOriginalInputFormat(color: tinycolor.Instance, originalFormat?: TinyColorFormat): any {
39
+ if (originalFormat === 'hex' && color.getAlpha() < 1) {
40
+ return color.toString('hex8');
41
+ }
42
+
39
43
  return color.toString(originalFormat);
40
44
  }
@@ -12,6 +12,7 @@ export * from './file-upload';
12
12
  export * from './hint-text';
13
13
  export * from './label';
14
14
  export * from './modal';
15
+ export * from './pagination';
15
16
  export * from './popover';
16
17
  export * from './progress';
17
18
  export * from './radio-group';
@@ -0,0 +1,23 @@
1
+ export * from './pagination-content.vue';
2
+ export { default as PaginationContent } from './pagination-content.vue';
3
+
4
+ export * from './pagination-ellipsis.vue';
5
+ export { default as PaginationEllipsis } from './pagination-ellipsis.vue';
6
+
7
+ export * from './pagination-first.vue';
8
+ export { default as PaginationFirst } from './pagination-first.vue';
9
+
10
+ export * from './pagination-item.vue';
11
+ export { default as PaginationItem } from './pagination-item.vue';
12
+
13
+ export * from './pagination-last.vue';
14
+ export { default as PaginationLast } from './pagination-last.vue';
15
+
16
+ export * from './pagination-next.vue';
17
+ export { default as PaginationNext } from './pagination-next.vue';
18
+
19
+ export * from './pagination-previous.vue';
20
+ export { default as PaginationPrevious } from './pagination-previous.vue';
21
+
22
+ export * from './pagination.vue';
23
+ export { default as Pagination } from './pagination.vue';
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { clsx } from 'clsx';
5
+ import { PaginationList, type PaginationListProps } from 'radix-vue';
6
+
7
+ const props = defineProps<PaginationContentProps>();
8
+
9
+ const delegated = reactiveOmit(props, 'class');
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ export interface PaginationContentProps extends PaginationListProps {
14
+ class?: HTMLAttributes['class'];
15
+ }
16
+ </script>
17
+
18
+ <template>
19
+ <PaginationList
20
+ v-slot="sprops"
21
+ data-slot="pagination-content"
22
+ v-bind="delegated"
23
+ :class="clsx('celeste-pagination-content', props.class)"
24
+ >
25
+ <slot v-bind="sprops" />
26
+ </PaginationList>
27
+ </template>
28
+
29
+ <style scoped>
30
+ .celeste-pagination-content {
31
+ display: flex;
32
+ flex-direction: row;
33
+ align-items: center;
34
+ gap: var(--spacing-8);
35
+ }
36
+ </style>
@@ -0,0 +1,47 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { clsx } from 'clsx';
5
+ import { PaginationEllipsis, type PaginationEllipsisProps as PrimitivePaginationEllipsisProps } from 'radix-vue';
6
+
7
+ const props = defineProps<PaginationEllipsisProps>();
8
+
9
+ const delegated = reactiveOmit(props, 'class');
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ export interface PaginationEllipsisProps extends PrimitivePaginationEllipsisProps {
14
+ class?: HTMLAttributes['class'];
15
+ }
16
+ </script>
17
+
18
+ <template>
19
+ <PaginationEllipsis
20
+ v-bind="delegated"
21
+ :class="clsx('celeste-pagination-element', 'celeste-pagination-ellipsis', props.class)"
22
+ data-slot="pagination-ellipsis"
23
+ >
24
+ <slot>
25
+ <span class="celeste-pagination-ellipsis-dots">...</span>
26
+ <span class="celeste-pagination-ellipsis-sr">More pages</span>
27
+ </slot>
28
+ </PaginationEllipsis>
29
+ </template>
30
+
31
+ <style lang="scss" scoped>
32
+ .celeste-pagination-ellipsis {
33
+ user-select: none;
34
+ }
35
+
36
+ .celeste-pagination-ellipsis .celeste-pagination-ellipsis-sr {
37
+ position: absolute;
38
+ width: 1px;
39
+ height: 1px;
40
+ margin: -1px;
41
+ padding: 0;
42
+ overflow: hidden;
43
+ clip: rect(0, 0, 0, 0);
44
+ border-width: 0;
45
+ white-space: nowrap;
46
+ }
47
+ </style>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { clsx } from 'clsx';
5
+ import { PaginationFirst, type PaginationFirstProps as PrimitivePaginationFirstProps, useForwardProps } from 'radix-vue';
6
+
7
+ const props = defineProps<PaginationFirstProps>();
8
+
9
+ const delegated = reactiveOmit(props, 'class');
10
+ const forwarded = useForwardProps(delegated);
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ export interface PaginationFirstProps extends PrimitivePaginationFirstProps {
15
+ class?: HTMLAttributes['class'];
16
+ }
17
+ </script>
18
+
19
+ <template>
20
+ <PaginationFirst
21
+ :class="clsx('celeste-pagination-element', 'celeste-pagination-first', props.class)"
22
+ data-slot="pagination-first"
23
+ v-bind="forwarded"
24
+ >
25
+ <slot>
26
+ <i class="i-celeste-arrow-left-double-line" />
27
+ </slot>
28
+ </PaginationFirst>
29
+ </template>
@@ -0,0 +1,28 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { clsx } from 'clsx';
5
+ import { PaginationListItem, type PaginationListItemProps } from 'radix-vue';
6
+
7
+ const props = defineProps<PaginationItemProps>();
8
+
9
+ const delegated = reactiveOmit(props, 'class', 'isActive', 'disabled');
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ export interface PaginationItemProps extends PaginationListItemProps {
14
+ class?: HTMLAttributes['class'];
15
+ isActive?: boolean;
16
+ disabled?: boolean;
17
+ }
18
+ </script>
19
+
20
+ <template>
21
+ <PaginationListItem
22
+ v-bind="delegated"
23
+ data-slot="pagination-item"
24
+ :class="clsx('celeste-pagination-element', 'celeste-pagination-item', props.class, { 'celeste-pagination-item-active': props.isActive }, props.disabled && 'celeste-pagination-item-disabled')"
25
+ >
26
+ <slot />
27
+ </PaginationListItem>
28
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { clsx } from 'clsx';
5
+ import { PaginationLast, type PaginationLastProps as PrimitivePaginationLastProps, useForwardProps } from 'radix-vue';
6
+
7
+ const props = defineProps<PaginationLastProps>();
8
+
9
+ const delegated = reactiveOmit(props, 'class');
10
+ const forwarded = useForwardProps(delegated);
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ export interface PaginationLastProps extends PrimitivePaginationLastProps {
15
+ class?: HTMLAttributes['class'];
16
+ }
17
+ </script>
18
+
19
+ <template>
20
+ <PaginationLast
21
+ :class="clsx('celeste-pagination-element', 'celeste-pagination-last', props.class)"
22
+ data-slot="pagination-last"
23
+ v-bind="forwarded"
24
+ >
25
+ <slot>
26
+ <i class="i-celeste-arrow-right-double-line" />
27
+ </slot>
28
+ </PaginationLast>
29
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { clsx } from 'clsx';
5
+ import { PaginationNext, type PaginationNextProps as PrimitivePaginationNextProps, useForwardProps } from 'radix-vue';
6
+
7
+ const props = defineProps<PaginationNextProps>();
8
+
9
+ const delegated = reactiveOmit(props, 'class');
10
+ const forwarded = useForwardProps(delegated);
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ export interface PaginationNextProps extends PrimitivePaginationNextProps {
15
+ class?: HTMLAttributes['class'];
16
+ }
17
+ </script>
18
+
19
+ <template>
20
+ <PaginationNext
21
+ :class="clsx('celeste-pagination-element', 'celeste-pagination-next', props.class)"
22
+ data-slot="pagination-next"
23
+ v-bind="forwarded"
24
+ >
25
+ <slot>
26
+ <i class="i-celeste-arrow-right-s-line" />
27
+ </slot>
28
+ </PaginationNext>
29
+ </template>
@@ -0,0 +1,33 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { clsx } from 'clsx';
5
+ import {
6
+ PaginationPrev as PaginationPrevious,
7
+ type PaginationPrevProps as PrimitivePaginationPreviousProps,
8
+ useForwardProps,
9
+ } from 'radix-vue';
10
+
11
+ const props = defineProps<PaginationPreviousProps>();
12
+
13
+ const delegated = reactiveOmit(props, 'class');
14
+ const forwarded = useForwardProps(delegated);
15
+ </script>
16
+
17
+ <script lang="ts">
18
+ export interface PaginationPreviousProps extends PrimitivePaginationPreviousProps {
19
+ class?: HTMLAttributes['class'];
20
+ }
21
+ </script>
22
+
23
+ <template>
24
+ <PaginationPrevious
25
+ :class="clsx('celeste-pagination-element', 'celeste-pagination-previous', props.class)"
26
+ data-slot="pagination-previous"
27
+ v-bind="forwarded"
28
+ >
29
+ <slot>
30
+ <i class="i-celeste-arrow-left-s-line" />
31
+ </slot>
32
+ </PaginationPrevious>
33
+ </template>