@nepdatejs/vanilla 0.0.0-stage → 0.1.1

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 (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +124 -2
  3. package/dist/auto-define.cjs +11 -0
  4. package/dist/auto-define.cjs.map +1 -0
  5. package/dist/auto-define.d.cts +2 -0
  6. package/dist/auto-define.d.ts +2 -0
  7. package/dist/auto-define.js +9 -0
  8. package/dist/auto-define.js.map +1 -0
  9. package/dist/calendar-BAcO-jYq.js +142 -0
  10. package/dist/calendar-BAcO-jYq.js.map +1 -0
  11. package/dist/calendar-BNdN8qJv.d.ts +87 -0
  12. package/dist/calendar-C1LZI7XN.cjs +159 -0
  13. package/dist/calendar-C1LZI7XN.cjs.map +1 -0
  14. package/dist/calendar-QWPX0IfD.d.cts +87 -0
  15. package/dist/calendar.cjs +7 -0
  16. package/dist/calendar.d.cts +2 -0
  17. package/dist/calendar.d.ts +2 -0
  18. package/dist/calendar.js +3 -0
  19. package/dist/date-picker-BidCGOz0.d.cts +74 -0
  20. package/dist/date-picker-BwlrlU5Y.js +560 -0
  21. package/dist/date-picker-BwlrlU5Y.js.map +1 -0
  22. package/dist/date-picker-CgjYsf1w.cjs +583 -0
  23. package/dist/date-picker-CgjYsf1w.cjs.map +1 -0
  24. package/dist/date-picker-DyvpYe29.d.ts +74 -0
  25. package/dist/date-picker.cjs +6 -0
  26. package/dist/date-picker.d.cts +3 -0
  27. package/dist/date-picker.d.ts +3 -0
  28. package/dist/date-picker.js +1 -0
  29. package/dist/date-range-picker-D3eNvlgv.d.ts +98 -0
  30. package/dist/date-range-picker-NwetXUC-.js +449 -0
  31. package/dist/date-range-picker-NwetXUC-.js.map +1 -0
  32. package/dist/date-range-picker-SIl0vhUV.d.cts +98 -0
  33. package/dist/date-range-picker-VrQZFZED.cjs +472 -0
  34. package/dist/date-range-picker-VrQZFZED.cjs.map +1 -0
  35. package/dist/date-range-picker.cjs +6 -0
  36. package/dist/date-range-picker.d.cts +2 -0
  37. package/dist/date-range-picker.d.ts +2 -0
  38. package/dist/date-range-picker.js +1 -0
  39. package/dist/date-time-picker-BzSyQxrf.d.cts +92 -0
  40. package/dist/date-time-picker-ChHIBTBw.cjs +492 -0
  41. package/dist/date-time-picker-ChHIBTBw.cjs.map +1 -0
  42. package/dist/date-time-picker-CxqC95aM.js +469 -0
  43. package/dist/date-time-picker-CxqC95aM.js.map +1 -0
  44. package/dist/date-time-picker-DzDpzLMZ.d.ts +92 -0
  45. package/dist/date-time-picker.cjs +6 -0
  46. package/dist/date-time-picker.d.cts +2 -0
  47. package/dist/date-time-picker.d.ts +2 -0
  48. package/dist/date-time-picker.js +1 -0
  49. package/dist/define-B8NUA3yj.d.cts +16 -0
  50. package/dist/define-B8NUA3yj.d.ts +16 -0
  51. package/dist/define-BbTIFHtH.cjs +23 -0
  52. package/dist/define-BbTIFHtH.cjs.map +1 -0
  53. package/dist/define-D96w8Zu2.js +18 -0
  54. package/dist/define-D96w8Zu2.js.map +1 -0
  55. package/dist/element-utils-BVye8UQq.d.cts +82 -0
  56. package/dist/element-utils-C-r5gPlk.d.ts +82 -0
  57. package/dist/index.cjs +30 -0
  58. package/dist/index.d.cts +8 -0
  59. package/dist/index.d.ts +8 -0
  60. package/dist/index.js +8 -0
  61. package/dist/multi-date-picker-B2mQbjZM.d.ts +105 -0
  62. package/dist/multi-date-picker-BUNf5zyJ.d.cts +105 -0
  63. package/dist/multi-date-picker-C3Lr0Dq-.js +424 -0
  64. package/dist/multi-date-picker-C3Lr0Dq-.js.map +1 -0
  65. package/dist/multi-date-picker-DUyuO-nH.cjs +447 -0
  66. package/dist/multi-date-picker-DUyuO-nH.cjs.map +1 -0
  67. package/dist/multi-date-picker.cjs +6 -0
  68. package/dist/multi-date-picker.d.cts +2 -0
  69. package/dist/multi-date-picker.d.ts +2 -0
  70. package/dist/multi-date-picker.js +1 -0
  71. package/dist/nepdate-picker.global.js +3 -0
  72. package/dist/nepdate-picker.global.js.map +1 -0
  73. package/dist/preset-list-BYCZm61I.cjs +97 -0
  74. package/dist/preset-list-BYCZm61I.cjs.map +1 -0
  75. package/dist/preset-list-DmE6fJjr.js +80 -0
  76. package/dist/preset-list-DmE6fJjr.js.map +1 -0
  77. package/dist/registry-3qzdVB7H.cjs +591 -0
  78. package/dist/registry-3qzdVB7H.cjs.map +1 -0
  79. package/dist/registry-BvkGnkvV.js +466 -0
  80. package/dist/registry-BvkGnkvV.js.map +1 -0
  81. package/package.json +162 -3
  82. package/src/auto-define.ts +6 -0
  83. package/src/calendar-element.ts +129 -0
  84. package/src/calendar-view.ts +406 -0
  85. package/src/calendar.ts +45 -0
  86. package/src/date-picker-element.ts +249 -0
  87. package/src/date-picker.ts +91 -0
  88. package/src/date-range-picker-element.ts +201 -0
  89. package/src/date-range-picker.ts +20 -0
  90. package/src/date-time-picker-element.ts +191 -0
  91. package/src/date-time-picker.ts +20 -0
  92. package/src/datetime-view.ts +434 -0
  93. package/src/define.ts +16 -0
  94. package/src/dom.ts +109 -0
  95. package/src/element-utils.ts +86 -0
  96. package/src/global.ts +7 -0
  97. package/src/index.ts +15 -0
  98. package/src/multi-date-picker-element.ts +187 -0
  99. package/src/multi-date-picker.ts +53 -0
  100. package/src/multi-view.ts +323 -0
  101. package/src/panel.ts +61 -0
  102. package/src/picker-view.ts +423 -0
  103. package/src/preset-list.ts +51 -0
  104. package/src/range-view.ts +368 -0
  105. package/src/registry.ts +27 -0
package/package.json CHANGED
@@ -1,6 +1,165 @@
1
1
  {
2
2
  "name": "@nepdatejs/vanilla",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
4
+ "description": "Nepali BS/AD date picker and calendar as Web Components and a plain JavaScript API.",
5
+ "keywords": [
6
+ "nepali",
7
+ "bikram-sambat",
8
+ "bs",
9
+ "nepali-date",
10
+ "date",
11
+ "calendar",
12
+ "datepicker",
13
+ "nepal"
14
+ ],
15
+ "license": "MIT",
16
+ "author": "Shishir Rai",
17
+ "homepage": "https://github.com/nepdate/nepdate/tree/main/packages/vanilla#readme",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/nepdate/nepdate.git",
21
+ "directory": "packages/vanilla"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/nepdate/nepdate/issues"
25
+ },
26
+ "type": "module",
27
+ "sideEffects": [
28
+ "./dist/auto-define.*",
29
+ "./dist/*.global.js",
30
+ "./src/auto-define.ts",
31
+ "./src/global.ts"
32
+ ],
33
+ "exports": {
34
+ ".": {
35
+ "@nepdatejs/source": "./src/index.ts",
36
+ "import": {
37
+ "types": "./dist/index.d.ts",
38
+ "default": "./dist/index.js"
39
+ },
40
+ "require": {
41
+ "types": "./dist/index.d.cts",
42
+ "default": "./dist/index.cjs"
43
+ }
44
+ },
45
+ "./define": {
46
+ "@nepdatejs/source": "./src/auto-define.ts",
47
+ "import": {
48
+ "types": "./dist/auto-define.d.ts",
49
+ "default": "./dist/auto-define.js"
50
+ },
51
+ "require": {
52
+ "types": "./dist/auto-define.d.cts",
53
+ "default": "./dist/auto-define.cjs"
54
+ }
55
+ },
56
+ "./date-picker": {
57
+ "@nepdatejs/source": "./src/date-picker.ts",
58
+ "import": {
59
+ "types": "./dist/date-picker.d.ts",
60
+ "default": "./dist/date-picker.js"
61
+ },
62
+ "require": {
63
+ "types": "./dist/date-picker.d.cts",
64
+ "default": "./dist/date-picker.cjs"
65
+ }
66
+ },
67
+ "./calendar": {
68
+ "@nepdatejs/source": "./src/calendar.ts",
69
+ "import": {
70
+ "types": "./dist/calendar.d.ts",
71
+ "default": "./dist/calendar.js"
72
+ },
73
+ "require": {
74
+ "types": "./dist/calendar.d.cts",
75
+ "default": "./dist/calendar.cjs"
76
+ }
77
+ },
78
+ "./date-range-picker": {
79
+ "@nepdatejs/source": "./src/date-range-picker.ts",
80
+ "import": {
81
+ "types": "./dist/date-range-picker.d.ts",
82
+ "default": "./dist/date-range-picker.js"
83
+ },
84
+ "require": {
85
+ "types": "./dist/date-range-picker.d.cts",
86
+ "default": "./dist/date-range-picker.cjs"
87
+ }
88
+ },
89
+ "./date-time-picker": {
90
+ "@nepdatejs/source": "./src/date-time-picker.ts",
91
+ "import": {
92
+ "types": "./dist/date-time-picker.d.ts",
93
+ "default": "./dist/date-time-picker.js"
94
+ },
95
+ "require": {
96
+ "types": "./dist/date-time-picker.d.cts",
97
+ "default": "./dist/date-time-picker.cjs"
98
+ }
99
+ },
100
+ "./multi-date-picker": {
101
+ "@nepdatejs/source": "./src/multi-date-picker.ts",
102
+ "import": {
103
+ "types": "./dist/multi-date-picker.d.ts",
104
+ "default": "./dist/multi-date-picker.js"
105
+ },
106
+ "require": {
107
+ "types": "./dist/multi-date-picker.d.cts",
108
+ "default": "./dist/multi-date-picker.cjs"
109
+ }
110
+ },
111
+ "./package.json": "./package.json"
112
+ },
113
+ "main": "./dist/index.cjs",
114
+ "module": "./dist/index.js",
115
+ "types": "./dist/index.d.cts",
116
+ "unpkg": "./dist/nepdate-picker.global.js",
117
+ "jsdelivr": "./dist/nepdate-picker.global.js",
118
+ "files": [
119
+ "dist",
120
+ "src",
121
+ "!src/**/*.test.ts",
122
+ "README.md",
123
+ "LICENSE"
124
+ ],
125
+ "engines": {
126
+ "node": ">=18"
127
+ },
128
+ "dependencies": {
129
+ "@nepdatejs/core": "^0.1.1",
130
+ "@nepdatejs/calendar": "^0.1.0",
131
+ "@nepdatejs/datepicker": "^0.1.1",
132
+ "@nepdatejs/dom": "^0.1.1",
133
+ "@nepdatejs/styles": "^0.1.0"
134
+ },
135
+ "publishConfig": {
136
+ "access": "public"
137
+ },
138
+ "typesVersions": {
139
+ "*": {
140
+ "define": [
141
+ "./dist/auto-define.d.cts"
142
+ ],
143
+ "date-picker": [
144
+ "./dist/date-picker.d.cts"
145
+ ],
146
+ "calendar": [
147
+ "./dist/calendar.d.cts"
148
+ ],
149
+ "date-range-picker": [
150
+ "./dist/date-range-picker.d.cts"
151
+ ],
152
+ "date-time-picker": [
153
+ "./dist/date-time-picker.d.cts"
154
+ ],
155
+ "multi-date-picker": [
156
+ "./dist/multi-date-picker.d.cts"
157
+ ]
158
+ }
159
+ },
160
+ "scripts": {
161
+ "build": "tsdown",
162
+ "typecheck": "tsc -p tsconfig.json",
163
+ "check:package": "publint --strict && attw --pack"
164
+ }
6
165
  }
@@ -0,0 +1,6 @@
1
+ /** `import '@nepdatejs/vanilla/define'` registers every element (<nep-date-picker>, <nep-calendar>, …). */
2
+ import { defineElements } from './define';
3
+
4
+ defineElements();
5
+
6
+ export { defineElements, ELEMENT_NAMES } from './define';
@@ -0,0 +1,129 @@
1
+ import { fromIsoDate } from '@nepdatejs/core';
2
+ import {
3
+ createCalendar as createCalendarStore,
4
+ isDayList,
5
+ type CalendarOptions,
6
+ type CalendarStore,
7
+ type DateRange,
8
+ } from '@nepdatejs/calendar';
9
+ import { CalendarView } from './calendar-view';
10
+ import {
11
+ Base,
12
+ str,
13
+ bool,
14
+ onUnlessFalse,
15
+ calendarAttr,
16
+ weekday,
17
+ theme,
18
+ isoOf,
19
+ type RichProps,
20
+ } from './element-utils';
21
+
22
+ /**
23
+ * <nep-calendar value="2026-10-18"></nep-calendar>
24
+ *
25
+ * A standalone month view. Fires `nep-select` with { date, value } (single) or
26
+ * { range: { start, end } } (with the `range` attribute).
27
+ */
28
+ export class NepCalendarElement extends Base {
29
+ static readonly observedAttributes: readonly string[] = [
30
+ 'value',
31
+ 'calendar',
32
+ 'locale',
33
+ 'min',
34
+ 'max',
35
+ 'week-starts-on',
36
+ 'show-other-calendar',
37
+ 'show-outside-days',
38
+ 'range',
39
+ 'theme',
40
+ ];
41
+
42
+ store: CalendarStore | null = null;
43
+ private view: CalendarView | null = null;
44
+ private rich: RichProps = {};
45
+
46
+ get holidays(): RichProps['holidays'] {
47
+ return this.rich.holidays;
48
+ }
49
+ set holidays(next: RichProps['holidays']) {
50
+ this.rich = { ...this.rich, holidays: next };
51
+ this.store?.setOptions({ holidays: next });
52
+ }
53
+ get events(): RichProps['events'] {
54
+ return this.rich.events;
55
+ }
56
+ set events(next: RichProps['events']) {
57
+ this.rich = { ...this.rich, events: next };
58
+ this.store?.setOptions({ events: next });
59
+ }
60
+ get isDateDisabled(): RichProps['isDateDisabled'] {
61
+ return this.rich.isDateDisabled;
62
+ }
63
+ set isDateDisabled(next: RichProps['isDateDisabled']) {
64
+ this.rich = { ...this.rich, isDateDisabled: next };
65
+ this.store?.setOptions({ isDateDisabled: next });
66
+ }
67
+
68
+ connectedCallback(): void {
69
+ if (this.store) {
70
+ return;
71
+ }
72
+ const store = createCalendarStore({
73
+ ...this.readOptions(),
74
+ onSelect: (selection) => {
75
+ const detail = isDayList(selection)
76
+ ? { dates: selection, values: selection.map(isoOf) }
77
+ : 'calendar' in selection
78
+ ? { date: selection, value: isoOf(selection) }
79
+ : {
80
+ range: {
81
+ start: isoOf(selection.start),
82
+ end: isoOf(selection.end),
83
+ } satisfies Record<keyof DateRange, string>,
84
+ };
85
+ this.dispatchEvent(new CustomEvent('nep-select', { bubbles: true, detail }));
86
+ },
87
+ });
88
+ this.store = store;
89
+ this.view = new CalendarView(this, store, { locale: () => str(this, 'locale') });
90
+ this.applyTheme();
91
+ }
92
+
93
+ disconnectedCallback(): void {
94
+ this.view?.destroy();
95
+ this.view = null;
96
+ this.store = null;
97
+ }
98
+
99
+ attributeChangedCallback(): void {
100
+ this.store?.setOptions(this.readOptions());
101
+ this.applyTheme();
102
+ }
103
+
104
+ private applyTheme(): void {
105
+ const value = theme(this);
106
+ if (this.view) {
107
+ if (value) {
108
+ this.view.element.dataset['ndpTheme'] = value;
109
+ } else {
110
+ delete this.view.element.dataset['ndpTheme'];
111
+ }
112
+ }
113
+ }
114
+
115
+ private readOptions(): CalendarOptions {
116
+ return {
117
+ ...this.rich,
118
+ selected: fromIsoDate(this.getAttribute('value')),
119
+ calendar: calendarAttr(this, 'calendar'),
120
+ locale: str(this, 'locale'),
121
+ min: fromIsoDate(this.getAttribute('min')),
122
+ max: fromIsoDate(this.getAttribute('max')),
123
+ weekStartsOn: weekday(this, 'week-starts-on'),
124
+ showOtherCalendar: onUnlessFalse(this, 'show-other-calendar'),
125
+ showOutsideDays: onUnlessFalse(this, 'show-outside-days'),
126
+ selectionMode: bool(this, 'range') ? 'range' : 'single',
127
+ };
128
+ }
129
+ }